{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![Callysto Banner](https://raw.githubusercontent.com/Ariel-VB/Central-Limit-Theorem/master/Callysto_Notebook-Banner_Top_06.06.18.jpg)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<script>\n",
       "  function code_toggle() {\n",
       "    if (code_shown){\n",
       "      $('div.input').hide('500');\n",
       "      $('#toggleButton').val('Show Code')\n",
       "    } else {\n",
       "      $('div.input').show('500');\n",
       "      $('#toggleButton').val('Hide Code')\n",
       "    }\n",
       "    code_shown = !code_shown\n",
       "  }\n",
       "  \n",
       "  $( document ).ready(function(){\n",
       "    code_shown=false;\n",
       "    $('div.input').hide()\n",
       "  });\n",
       "</script>\n",
       "<form action=\"javascript:code_toggle()\"><input type=\"submit\" id=\"toggleButton\" value=\"Show Code\"></form>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#Running this cell displays a button to toggle hidden code\n",
    "#From: http://chris-said.io/2016/02/13/how-to-make-polished-jupyter-presentations-with-optional-code-visibility/\n",
    "\n",
    "from IPython.display import HTML\n",
    "\n",
    "display (HTML('''<script>\n",
    "  function code_toggle() {\n",
    "    if (code_shown){\n",
    "      $('div.input').hide('500');\n",
    "      $('#toggleButton').val('Show Code')\n",
    "    } else {\n",
    "      $('div.input').show('500');\n",
    "      $('#toggleButton').val('Hide Code')\n",
    "    }\n",
    "    code_shown = !code_shown\n",
    "  }\n",
    "  \n",
    "  $( document ).ready(function(){\n",
    "    code_shown=false;\n",
    "    $('div.input').hide()\n",
    "  });\n",
    "</script>\n",
    "<form action=\"javascript:code_toggle()\"><input type=\"submit\" id=\"toggleButton\" value=\"Show Code\"></form>'''))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "#Colour Functions!\n",
    "\n",
    "def colour_green(value):\n",
    "    color = \"#7be840\"\n",
    "    return \"background-color: %s\" % color\n",
    "def colour_blue(value):\n",
    "    color = \"#70aeff\"\n",
    "    return \"background-color: %s\" % color\n",
    "def colour_grey(value):\n",
    "    color = \"#a5a5a5\"\n",
    "    return \"background-color: %s\" % color\n",
    "def colour_yellow(value):\n",
    "    color = \"#fcff66\"\n",
    "    return \"background-color: %s\" % color\n",
    "def colour_orange(value):\n",
    "    color = \"#ffa449\"\n",
    "    return \"background-color: %s\" % color"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Remove warnings from the tools below that will soon be outdated\n",
    "import warnings\n",
    "warnings.filterwarnings(\"ignore\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Recycling Contamination"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "When people throw waste into the wrong bin, they cause that waste stream to be contaminated. \n",
    "<br> Contamination in each waste stream causes different problems:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### <font color=grey>Landfill:</font>\n",
    "> When **compostable waste** enters the Landfill, it releases methane (a powerful greenhouse gas) into the atmosphere, which contributes to global warming.\n",
    "> <br> When **recyclable waste** enters the Landfill, the resources used to make the recyclable items are lost and take up valuable space.\n",
    "### <font color=blue>Recycling:</font>\n",
    "> When **compostable waste** enters the Recycling stream, it ruins the recyclable items and causes them to be sent to Landfill.\n",
    "<br> When **landfill waste** enters the Recycling stream, it clogs up the machines used to sort recyclable waste and causes mechanical issues.\n",
    "### <font color=green>Compost:</font>\n",
    "> When **recyclable** and **landfill waste** enter the Compost stream, they have to be sorted out by workers using their hands, or else they are ground up into tiny bits and left in the soil, harming ecosystems."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Below is a table showing typical contamination values <br> for each waste stream.\n",
    "\n",
    "> The **bottom row** calculates how much contamination is in each stream by dividing the _number of contaminants_ by the _total number of items_ disposed in each stream.\n",
    "\n",
    "> Cells with the number of items disposed correctly in each stream are colour-coded, and contamination is highlighted yellow."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style  type=\"text/css\" >\n",
       "    #T_355439c6_2908_11e9_9672_dba807aeee37row0_col0 {\n",
       "            background-color:  #7be840;\n",
       "        }    #T_355439c6_2908_11e9_9672_dba807aeee37row1_col1 {\n",
       "            background-color:  #70aeff;\n",
       "        }    #T_355439c6_2908_11e9_9672_dba807aeee37row2_col2 {\n",
       "            background-color:  #a5a5a5;\n",
       "        }    #T_355439c6_2908_11e9_9672_dba807aeee37row3_col0 {\n",
       "            background-color:  #fcff66;\n",
       "        }    #T_355439c6_2908_11e9_9672_dba807aeee37row3_col1 {\n",
       "            background-color:  #fcff66;\n",
       "        }    #T_355439c6_2908_11e9_9672_dba807aeee37row3_col2 {\n",
       "            background-color:  #fcff66;\n",
       "        }</style>  \n",
       "<table id=\"T_355439c6_2908_11e9_9672_dba807aeee37\" > \n",
       "<thead>    <tr> \n",
       "        <th class=\"blank level0\" ></th> \n",
       "        <th class=\"col_heading level0 col0\" >Compost</th> \n",
       "        <th class=\"col_heading level0 col1\" >Recycling</th> \n",
       "        <th class=\"col_heading level0 col2\" >Landfill</th> \n",
       "    </tr></thead> \n",
       "<tbody>    <tr> \n",
       "        <th id=\"T_355439c6_2908_11e9_9672_dba807aeee37level0_row0\" class=\"row_heading level0 row0\" >Compost</th> \n",
       "        <td id=\"T_355439c6_2908_11e9_9672_dba807aeee37row0_col0\" class=\"data row0 col0\" >8</td> \n",
       "        <td id=\"T_355439c6_2908_11e9_9672_dba807aeee37row0_col1\" class=\"data row0 col1\" >2</td> \n",
       "        <td id=\"T_355439c6_2908_11e9_9672_dba807aeee37row0_col2\" class=\"data row0 col2\" >6</td> \n",
       "    </tr>    <tr> \n",
       "        <th id=\"T_355439c6_2908_11e9_9672_dba807aeee37level0_row1\" class=\"row_heading level0 row1\" >Recycling</th> \n",
       "        <td id=\"T_355439c6_2908_11e9_9672_dba807aeee37row1_col0\" class=\"data row1 col0\" >1</td> \n",
       "        <td id=\"T_355439c6_2908_11e9_9672_dba807aeee37row1_col1\" class=\"data row1 col1\" >7</td> \n",
       "        <td id=\"T_355439c6_2908_11e9_9672_dba807aeee37row1_col2\" class=\"data row1 col2\" >2</td> \n",
       "    </tr>    <tr> \n",
       "        <th id=\"T_355439c6_2908_11e9_9672_dba807aeee37level0_row2\" class=\"row_heading level0 row2\" >Landfill</th> \n",
       "        <td id=\"T_355439c6_2908_11e9_9672_dba807aeee37row2_col0\" class=\"data row2 col0\" >1</td> \n",
       "        <td id=\"T_355439c6_2908_11e9_9672_dba807aeee37row2_col1\" class=\"data row2 col1\" >1</td> \n",
       "        <td id=\"T_355439c6_2908_11e9_9672_dba807aeee37row2_col2\" class=\"data row2 col2\" >2</td> \n",
       "    </tr>    <tr> \n",
       "        <th id=\"T_355439c6_2908_11e9_9672_dba807aeee37level0_row3\" class=\"row_heading level0 row3\" >% Contamination</th> \n",
       "        <td id=\"T_355439c6_2908_11e9_9672_dba807aeee37row3_col0\" class=\"data row3 col0\" >20%</td> \n",
       "        <td id=\"T_355439c6_2908_11e9_9672_dba807aeee37row3_col1\" class=\"data row3 col1\" >30%</td> \n",
       "        <td id=\"T_355439c6_2908_11e9_9672_dba807aeee37row3_col2\" class=\"data row3 col2\" >80%</td> \n",
       "    </tr></tbody> \n",
       "</table> "
      ],
      "text/plain": [
       "<pandas.io.formats.style.Styler at 0x7f51bb606b38>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "## Contamination Data Table\n",
    "# Values are pre-set: qgrid allows them to be changed, but the % Contamination value does not automatically update.\n",
    "\n",
    "import pandas as pd\n",
    "import qgrid\n",
    "\n",
    "streams = ['Compost', 'Recycling', 'Landfill']\n",
    "contamination = [[8.0, 2.0, 6.0], \n",
    "                 [1.0, 7.0, 2.0], \n",
    "                 [1.0, 1.0, 2.0],\n",
    "                [20.0, 30.0, 80.0]] \n",
    "rows = [\"Compost\" , \"Recycling\", \"Landfill\", \"% Contamination\"]\n",
    "\n",
    "conTable = pd.DataFrame(data = contamination, columns = streams , index = rows)\n",
    "conTable.set_value(\"% Contamination\", \"Compost\", 0.2)\n",
    "conTable.set_value(\"% Contamination\", \"Recycling\", 0.3)\n",
    "conTable.set_value(\"% Contamination\", \"Landfill\", 0.8)\n",
    "\n",
    "display(conTable.style.applymap(colour_green, subset=(\"Compost\",\"Compost\"))\\\n",
    "        .applymap(colour_blue, subset=(\"Recycling\", \"Recycling\"))\\\n",
    "        .applymap(colour_grey, subset=(\"Landfill\", \"Landfill\"))\\\n",
    "        .applymap(colour_yellow, subset=(\"% Contamination\",\"Compost\"))\\\n",
    "        .applymap(colour_yellow, subset=(\"% Contamination\", \"Recycling\"))\\\n",
    "        .applymap(colour_yellow, subset=(\"% Contamination\", \"Landfill\"))\\\n",
    "        .format(\"{:.0%}\", subset = (\"% Contamination\",(\"Compost\", \"Recycling\", \"Landfill\"))))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## How is % Contamination affected by waste disposal choices?"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Try changing the numbers in the first 3 rows of each column. As you change the \n",
    "<br> number of items in each stream, you'll notice that the % Contamination row automatically updates."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "faf44979f7fb47f3acf16db9e7c50e40",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "QgridWidget(grid_options={'fullWidthRows': True, 'syncColumnCellResize': True, 'forceFitColumns': True, 'defau…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "## Contamination Table with values that automatically update the % Contamination\n",
    "# qgrid allows\n",
    "\n",
    "import qgrid\n",
    "from IPython.display import clear_output\n",
    "\n",
    "\n",
    "df = pd.DataFrame(data = contamination, columns=streams, index = rows)\n",
    "\n",
    "def handler1(event, qgrid_widgetCont):\n",
    "    df = qgrid_widgetCont.get_changed_df()\n",
    "    \n",
    "    # Updating the Compost column\n",
    "    compostPercent = round((df[\"Compost\"][\"Recycling\"]+df[\"Compost\"][\"Landfill\"])/(df[\"Compost\"][\"Compost\"]+df[\"Compost\"][\"Recycling\"]+df[\"Compost\"][\"Landfill\"])*100, 0)\n",
    "    df.set_value(\"% Contamination\", \"Compost\", compostPercent)\n",
    "    \n",
    "    # Updating the Recycling column\n",
    "    recyclingPercent = round((df[\"Recycling\"][\"Compost\"]+df[\"Recycling\"][\"Landfill\"])/(df[\"Recycling\"][\"Compost\"]+df[\"Recycling\"][\"Recycling\"]+df[\"Recycling\"][\"Landfill\"])*100 , 0)\n",
    "    df.set_value(\"% Contamination\", \"Recycling\", recyclingPercent)\n",
    "    \n",
    "    # Updating the Landfill column\n",
    "    landfillPercent = round((df[\"Landfill\"][\"Compost\"]+df[\"Landfill\"][\"Recycling\"])/(df[\"Landfill\"][\"Compost\"]+df[\"Landfill\"][\"Recycling\"]+df[\"Landfill\"][\"Landfill\"])*100, 0)\n",
    "    df.set_value(\"% Contamination\", \"Landfill\", landfillPercent)\n",
    "    \n",
    "    qgrid_widgetCont = qgrid.show_grid(df)\n",
    "    clear_output()\n",
    "    qgrid_widgetCont.on(names = 'cell_edited', handler = handler1)\n",
    "    display(qgrid_widgetCont)\n",
    "\n",
    "qgrid_widgetCont = qgrid.show_grid(df)\n",
    "qgrid_widgetCont.on(names = 'cell_edited', handler = handler1)\n",
    "qgrid_widgetCont"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Data Communication\n",
    "\n",
    "Looking at a bunch of numbers in a table is tiring, and requires each reader to imagine what each value represents.\n",
    "Instead, data analysts and scientists use graphs to \"visualize\" their data.\n",
    "\n",
    "**Pie charts** and **Stacked barplots** are two ways to visualize data that are percentages of a \"whole\".\n",
    "> Look at the pie charts and stacked barplots below. Which graph is the easiest to understand?"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Pie Charts"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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UesVK1b4AKC8vNy1fPlyX/N+axRP+DdARESRwBFbIqIGwt2eJFJcLhfefvvtdTNnzuz25JNPpvt8viNbnRw4cMCdlZU1UAgh77///s3du3evWb58ediv3bdv38oRI0b03717t/fJJ5/8Ljk5Wd599907pk2b1iMzMzPb7XZj9uzZG5KSkuQrr7yS+sYbb3TweDwyLS2t+je/+c1Wv99fm5eXd6Bfv34DzznnnP2//vWvt0+cOLFvTk5O1sCBAyt69ep1uP579e7d+/CLL77YYebMmT169epVeddddx2zPUrnzp1rZs+eveGKK67oXVVVJQDgvvvu26J6Oxc6VqzbP8C/Af4NEBFFhjjdVB8ioni3bNmyDbm5ubtU54i0qVOn9pw8efL+GTNm7FWdpamWLVvWMTc3t6fqHE4Qr+0fsO/fANs/EVHzcCoyERERERER2RqnIhMRxaE333xzg+oMRCrxb4CIyFk4YktERERERES2xsKWiIiIiIiIbI2FLREREREREdkaC1siIiIiIiKyNS4eRUTUQCCIvEi+3hP5aHRfULfbndevX79DtbW1olu3bpWvv/76+o4dO9ZGMsfxVq1alTB58uR+a9asKTnVcxYsWJAya9Ysf1FR0drjH+vSpcugRYsWrczIyKiJZk6KLbb/o9j+iYjshSO2RESK+Xy+urKystI1a9aUtGvXrubRRx9NU52JKFbY/omIKBJY2BIRWciZZ555cMuWLQn1n//yl7/05+TkZGVmZmYHAoHO9fc/88wzHTIzM7P79++fPWXKlF579+51denSZVBlZaUAgD179hz5fMWKFb7Ro0dn9u/fPzs7OzurpKTE1/B7rlq1KiEvL69/dnZ2VnZ2dtb777/fqv6x8vJy9/nnn9+nT58+AwsKCrrX1p44kPbss8+mDho0KGvAgAHZBQUFPWpqOIhFzcP2T0REzcXClojIImpqalBUVJQyZcqUfQAwb968NmvXrk1cvnz5ypUrV5YuXbo0+d133229aNGixMceeyxj4cKFq1etWlU6e/bsje3bt68bNWpU+euvv94WAF588cXUSZMm7fX5fLKgoKDXTTfdtGPVqlWlixYtKuvevXt1w+/buXPnmk8++WR1aWnpyr///e/fBgKB7vWPFRcXt/r973+/adWqVSUbNmzwvfzyy+0bfu0333yTOHfu3NRFixaVlZWVlbpcLvncc891iMXvi+IL2z8REbUEr7ElIlKssrLSNWDAgOwtW7Yk5OTkVEyZMuV7AHjvvffafPzxx22ys7OzAaCiosJVVlaW+M0337guuuiivfXX9/n9/loAuOGGG3Y+8sgj6dOmTdv36quvdnz++ec37N2712UYRsI111yzDwCSk5MlANnw+1dVVYnrrruuR2lpaZLL5cJ33313ZERr0KBBB7Ozs6sA4LLLLtvzySeftJ4xY8be+sffe++9lBUrViTn5uZmAcDhw4ddnTp14pAVhY3tn4iIIoEjtkREitVfY7hhw4biqqoq8dvf/rYTAEgpcfvtt28rKysrLSsrK924ceOKQCCwS0oJIYQ8/nUmTJhwcPPmzb533nmndW1trRg+fPhhKU942gkeeughf6dOnapXrlxZWlxcXFpdXX2kbxBCHPPc4z+XUopLL710d33GDRs2rHj88ce3NvNXQQ7E9k9ERJHAwpaIyCI6dOhQ+9RTT238wx/+4K+srBQTJ078/pVXXum4f/9+FwCsX7/eu2XLFs8FF1zw/dtvv526fft2NwAYhuGuf40rrrhi94wZM3pfffXVuwAgNTW1Lj09veqVV15pBwCHDh0S5eXlxxz79+/f787IyKh2u9149tlnOzS8jrC4uLhVWVlZQm1tLebOnZs6duzY8oZfe8EFF3y/YMGC9lu2bPHUZ1m9enUCiJqI7Z+IiFqCU5GJiBoIZ3uSaDrrrLMOZWVlHXrhhRfa33LLLXtKSkoShw8fPgAAkpOT6/72t7+tHzZs2OE777xz29ixYwe4XC6Zk5NT8eabb24AgOuuu273I4880uW6667bU/+ar7766vrrr7++x4MPPtjZ6/XKN954Y53bfaQWwO23375j6tSpfd566632Y8aMKU9KSqqrf+yMM844cOedd3YtKytLGjlyZPm0adP2Ncybl5d3WNf1Leeee25mXV0dvF6vfOqppzZmZmZWRft3RZHH9s/2T0RkVyKcaTpERPFq2bJlG3Jzc3epzhEpf/nLX9r/4x//aPfWW2+tV52luZYtW9YxNze3p+ocTsD2bz1s/0REzcMRWyKiOHHttdd2KyoqartgwYI1qrMQxRrbPxGRs7GwJSKKEy+99NImAJtU5yBSge2fiMjZuHgUERERERER2RoLWyIiIiIiIrI1FrZERERERERkayxsiYiIiIiIyNa4eBQRUQNz5szJi+TrFRQUNLovaHJy8pCKioolkfy+d9xxR+fWrVvXPvDAA8aSJUsSr7zyyt5CCMydO3fd1Vdf3WvJkiVlq1atSpg8eXK/NWvWlCxYsCBl1qxZ/qKiorXHv9a//vWv1nfddVe3AwcOuADglltuMe66667TbhHT8LUj+XNRdLH9s/0TEdkVC1siojj3xhtvtJs4ceK+J554YisALFmypCzcr924caNn+vTpvd544411Y8aMqdi2bZvnvPPO69e1a9fqK664Yn/0UhNFBts/EZEzcCoyEZEFzZkzp+3gwYMHZGVlZY8ePTpz06ZNHsAcibr00kt7jhgxon/Xrl0HFRYWdqr/mp///OfpPXv2zBk9enTmmjVrfADw97//ve2f/vQn/9/+9reOI0eOzATMEbJwc8yaNavT5ZdfvnvMmDEVAJCRkVHz8MMPb3700UfTAWDq1Kk9p0+f3m3IkCEDunbtOugvf/lL++NfIy8vr//nn3+eVP/50KFDB3z55ZdJxz+PqB7bPxERNRVHbIliQDc0D8y/N3fo3/qPAaA2dKsJ3WoB1BT6i6SCqGQR559//oErrriizOVy4fHHH+/4wAMPpD///PObAWDt2rWJn3/++ap9+/a5s7Kycn72s5/t/Oqrr5KCwWBqcXFxaXV1Nc4444zsIUOGVFx++eX7v/zyy5310zKbmmPlypVJ11xzze6G940ZM6Zi7dq1R96YG4bhXbRoUdnSpUsT8/Pz+86YMWNvw+dPnz591wsvvNBx9OjRm5YvX+6rqqoSI0eOPNTc3w3FP7Z/irVAEF4AiaGbD0AdgIMADj6RjxqV2YgoPCxsiZpBN7Q2ADqFbmmNfNwRTf9bq9MNbQ+AnQB2NPj3VB/vYSEcX9avX58wZcqUrjt37vRWVVW5unXrVln/2IQJE/YlJSXJpKSkmtTU1OrNmzd7ioqKWk+aNGlfSkpKXf1zIpFDSgkhxAltSwhx5OOLL754n9vtRl5e3uHdu3d7j3/u9OnT9z766KMZlZWVm5977rmOBQUFp70+kYjtn5ojEIQHQAaALie5dQbQBkeL1yQcW8i6T/KS9a9bBbPIrQj9e/C4z3cC2BS6bQzdNj2Rj6pI/4xEdGosbIlOITTKmglgIICcBv/2hNkJRpMLZkHcEUBWGM+v0Q1tC4BSACsAlIT+XVnoL6qIWkqKmp/85Cfdb7vttu1XXXXV/gULFqQ88MADnesf8/l8R95ou91u1NTUCODYN9uRkpWVdejrr79uddVVVx25nvCzzz5L7tOnz5ERp8TExCN5pDzx/EpKSkrd2LFjv58zZ067t99+O3Xx4sWlEQ9KcYXtn04lEEQrmH1xLo72yfXFaxqic5ldQuh2wlTz05CBIHbgaKG7EWbhuwrA0ifysTXiKYkcjoUtOZ5uaC4AfXBiAZsJsyOzAw+AHqHbxAb31+mGth5HC936f8sK/UU8k2xh5eXl7u7du1cDwF//+tcOjT3/nHPOOfDjH/+454MPPriturpavP/+++2uvfbanS3Nceedd+4888wzB1x22WV7R48efWj79u3ue++9t+u9997bpDdlN910066pU6f2HT58+AG/31/b0lwU39j+KRCEANALZgE7uMGtN+yxRowA4A/dhh//YKjoXXLcbe0T+eDsK6JmYmFLjqMbWgqAswGcA2AszEI2XhfyqC/a+wC4uMH9NbqhrQHwOYD/APhPob9ou4J8lhPO9iSRdvjwYZff7x9c//nNN99s/OIXv9h65ZVX9vH7/VXDhg07uHHjxtPOEhgzZkxFfn7+npycnIFdunSpHDFixIFIZOvRo0f1iy++uP6GG27oefDgQZeUUtx8881GQUFBk1aEHTt2bEWrVq1qZ8yYwWmYFsb2fyy2/9gJBJEOYFzoNhTmCeYUpaGiqxOAH4Ru9Q4EgliGo4Xu50/kI+xVvImcTpxs2gxRPNENLQnAGAAazGI2DzypczIrARTBLHSLCv1FexTniYlly5ZtyM3N5ZvNKNuwYYN3/Pjx/detW7fC7T7lpWwAgGXLlnXMzc3tGZtkzsb2Hxts/ycKBJEB4FyYJ5rHwZwlRSfaDOCD+tsT+WjyImhETsE39xR3dEPzAjgTZhF7Tuhju0wpVikrdJsJQOqGtgyh0VwAHxf6i8pVhiP7euaZZzoUFhZ2efjhhzc19qaeKN6w/ZsCQSQDGA/g/NBtoNJA9tEVwPTQTQaCWAHg/dDt4yfywXU0iEI4YktxQTe0zgCmArgQ5vTiZLWJ4k4NgMUA3gXwRqG/KG4WP+GIlfU4ZcTKCtj+rSee2n8giA4ALgFwKcyRWZ5kjqwqmJcUvQ/g7SfysUJxHiKlOGJLttWgmL0MwGjYYzEJu/IAGBm6/Vo3tFIAb8AsckuUJmu5urq6OuFyuXiWzwLq6uoEzP0jKTbY/i0kHtp/IIj2APJh9s3ngu81oykB5ij4eAAPBYKo75tffyIfcXMCmihcHLElW9ENrQOAywFcCeAsmKsOklqlAP4O4NVCf9G3qsM01bJly95OT0/PTktL288392rV1dWJnTt3tt2+fXtpbm7uxY1/BbUU27912Ln9B4JoC2AKzP75PAAn7OdLMVeamPPTF9xtit8q9BetVx2GKBZY2JLl6YbmAzAZwDQAk8AO08o+A/AKgNcL/UV7VYcJx+LFizt5PJ4XYK7AyVF/teoArKipqfmfvLy8HarDOAHbv6XYqv2Hrpm9BGYxOwGcZmwxdbuSR52XKoQUMPvml2HOstqnOBhR1LCwJcvSDS0PwA0wpzO1UxyHmqYSwDsAXgTwz0J/EQ80RERxIBBEX5iLDM4A+2bLciWv/TTpjOvHHHd3JYD5MPvm99g3U7xhYUuWohuaC8APAQRgLgJF9rcKwO8BvFToL+LqjURENhMIwgVzxtQtMPdd5WVAFpfQ+/EvvOnzzzzNU8oAPAng5UJ/0aEYxSKKKha2ZAm6obWGefb3NgB9FMeh6NgDYDaAZwr9RVtVhyEiotMLBJEK4McAbgbQW3EcCpusTB45qUa4D7cK48m7ATwHs2/eHuVgRFHFwpaU0g2tG4BbAVwPTmlyimqYi009XugvWqI6DBERHSsQxBCYffMVAJIUx6EmEgm7FiUPu3RYE7+sCsBrMPvm5VGIRRR1LGxJCd3QhgO4A8CPwK0AnGwhgMcBzOe1PkREagWCOBvA/TD3nCWb8nb+v08Ses5uyeVcHwJ4Alwjg2yGhS3FjG5oAuZ2AHfC3KqHqN4amNfhvshrfYiIYisQxBgADwDQVGehlkvKu3yby7cjIwIvVX8d7kuF/qLDEXg9oqhiYUsxoRvauQAeBTBEdRaytC0AfgXgr4X+ojrVYYiI4lkgiFEwC9rzVGehCHEdWtnqzElZEX7VTTD75pfZN5OVsbClqNINbTCA38FcRZEoXCsA3FPoL3pHdRAiongTCGIEzCnHF6jOQpHl7vDRwsT+90drKvlyAD8v9Be9F6XXJ2oRFrYUFaFFoQoBXA3ApTgO2VcRgLsL/UWLVAchIrK7QBBDYY7QXqg6C0VHYs6tZe42KwZE+dt8ALNv5gKQZCksbCmidENrC+BeAD8FkKg4DsUHCXMV5XsL/UXrVYchIrKbQBDdAMwCcKnqLBRNtdtajT4vEtfWhkMCmAPgF4X+ou9i9D2JTouFLUWEbmgJMDdu/wWADorjUHyqAvAsgMJCf9Fu1WGIiKwuEEQCzAUbdQDJiuNQlLlal3ySNPgnLVkNuTkqATwD4KFCf9HeGH9vomOwsKUWCa10fCXMace9FMchZ9gP4LcAnuQqjUREJxcIYgKApwFkqs5CseHr99AiT9oHTd2/NlL2AngYwNOF/qJKRRnI4VjYUrPphpYJ4M8AxqjOQo60HsD/FPqL/qM6CBGRVYSmHT8BYKrqLBRL8mDymT/wCFe1T3GQdTD75o8U5yAHYmFLTaYbmhvm1Kb7wetoSb3nAdxV6C/6XnUQIiJVOO3Y2YRv65fJeVeNVJ0jRAKYDXOBqXLVYcg5uFotNYluaDkA/gvgEbCoJWu4HkCJbmiTVAchIlIhNO24GOZUUBa1DuTp9F616gwNCAA3AVihGxq3e6SY4YgthUU3NC+A/4W5OFSC4jhEp/IKgNu4gAUROUEgiBSY19FeqzoLqSTrkodN3SMS9nZUneQU/gogUOgv2qc6CMU3jthSo3RDGwrga5hTj1nUkpVNA1CqG1q+6iBERNEUCGIMgGVgUUvuAyUWLmoBYDrMvvli1UEovnHElk5JNzQfgPsA/AyAR3EcoqZ6A8Athf6inaqDEBFFSiAIL8wTzT8HBygIgKfTux/5+v5uvOocYfo/ALcW+ot2qQ5C8YcHRDop3dDOBLAE5vRjFrVkR5fCPENcoDoIEVEkBIIYAOALmH0z38MRAMCTPq+b6gxNcAXMdTEuUx2E4g9HbOkYuqG5APwa5rW07DQpXswFcB1XTiYiuwoE8RMAvwOQpDoLWYio/q7VqAk9VMdoptcAXF/oLzqoOgjFBxa2dIRuaOkA5gDQVGchioJ1AC4t9BctUR2EiChcgSDSAbwIYKLqLGQ9rjbfLEzKufNs1TlaoATA1EJ/0SrVQcj+OCJHAADd0MbDnHrMopbiVR8An+uGdqPqIERE4QgEMRnmNj4saumkvBnz2qrO0EIDAXytG9olqoOQ/XHE1uF0QxMwpx3/GoBbbRqimJkD4MZCf9EB1UGIiI4XCEIA+CXMvlmoTUPWJfcnjzq/lRC18bIWymMA7in0F9WqDkL2xBFbB9MNrS2A+QAeBItacpYCAF/phpapOggRUUOBIFrDXBfgfrCopdMQSRtL4qioBYC7AHygG1on1UHInljYOpRuaNkw96a9UHUWIkWyYBa3/BsgIksIBNEbwH8BcFomNcrrXxCPJz7GA/hGN7RRqoOQ/XAqsgOFrmN4CUBr1VmILEDC3K+5sNBfxAMiESkRCOJcAK8DSFWdhexAViePuKhCeA7a/RrbU6kGcGehv+hp1UHIPljYOkhoK58HANwLTm8iOl4QwLWF/qJy1UGIyFkCQQQAPApeFkTh8uxd0mrEJUNUx4iBOQBu4JZAFA4Wtg6hG1oigP8D8EPVWYgsbAWACwr9RVtUByGi+BcIIhHAbADXqM5C9uJJDy709X7Kztv8NMUyABML/UXbVAcha+M1tg4QWiTq32BRS9SYHJhbAvVXHYSI4lsgiM4AFoJFLTWDN2NeL9UZYigXwGe6ofVVHYSsjYVtnNMNLR3AxwDGqs5CZBPdAXyqG9ow1UGIKD4FgugL4DMAI1RnIRsSlWtdSZu7q44RY71g9s1OmH5NzcTCNo7phtYHZsc5WHUWIpvpCKBIN7TzVAchovgSCGIwgE8A9FQchWzK3W7xZtUZFPED+Eg3tPGqg5A1sbCNU7qhnQGzqO2tOguRTbUG8I5uaJeqDkJE8SEQxCgAHwFIVxyFbMybMa+j6gwKtQHwnm5o+aqDkPWwsI1DuqGdDfO6Hb/qLEQ2lwDg/3RDu1l1ECKyt0AQEwC8D6C96ixkZ3U7XW2/yVadQjEfgDd0Q7tedRCyFha2cUY3tCkA3oN5RouIWs4F4Fnd0O5THYSI7CkQxFQA8wG0Up2F7M3Vam2ZEJLv382tsf6kG9ovVAch6+B2P3FEN7TrYG4bwH3wiKLjDwB+WugvqlMdhIjsIRDEjwH8CeybKQISes/6ypu+gIuOHev3AAKF/iIWNQ7HMz5xQje0ewC8AHacRNF0C4C/6YbmVR2EiKwvEMQdYN9MESMPe9Lez1GdwoJuA/AK+2ZiYRsHdEP7FYDfqM5B5BBXwLy2x6M6CBFZVyCI+wHMAiBUZ6H4IBJ2FQt3ZbLqHBZ1FYA5uqHxJJKDsbC1Od3QfgrgftU5iBzmhwBe1A2Nb1iJ6ASBIH4J4Feqc1B88aS9f1h1Bov7Eczrbtk3OxQLWxvTDe0aAE+qzkHkUNNgXtdDRHREIIgAgAdU56B4I6Un/a1+qlPYwI8BPKY6BKnBwtamdEP7IYA/g1OciFS6VTc0zpggIgBAIIgbATyuOgfFIdehMpdvJ/c/Ds8duqHpqkNQ7LGwtSHd0DQAfwfAa/yI1PuVbmi3qw5BRGoFgrgawLOqc1B8crf/YofqDDbzoG5oP1EdgmKLha3N6IY2HMDbMDenJiJreFw3tBmqQxCRGoEgJgP4C/i+iqLE2/lNjtY23VO6oV2tOgTFDg/ANqIb2kAA7wJorToLER1DAHheN7R81UGIKLYCQZwF4HVwFhVFTe1Wd0ppf9UpbEgA+ItuaBdndjsUAAAgAElEQVSrDkKxwcLWJnRD6wXg3wA6qM5CRCflBvCabmjnqg5CRLERCCIHwHwASaqzUPxypaxcqzqDjXkAvB66jI/iHAtbG9ANLR3A+wA6q85CRKflA/CWbmgjVQchougKBNEDwL8AtFedheKbN/2tVqoz2JwPwNuhy/kojrGwtTjd0NrBHKntozoLEYWlNYB3Q5cOEFEcCgTRBualQTzhTFEmy90dFg5SnSIO1PfNWaqDUPSwsLUw3dBcAP4GgAc0IntpD/PsMEdyiOJMIIj6vplvkCnqhG9riXDVJKjOESc6APiHbmhtVQeh6GhxYSuESBdC/J8QYp0QolQI8U8hRGYkwrUwVzshxMwwntdTCLHiFI99JIQYFvl0YXsAwCSF35+Imq83zGtueQKRKL48CGCy6hDkDJ5O79WqzhBn+gH4Wyz6ZtZIsdei/1QhhAAQBPCRlLKPlDIbwL0A/JEI10LtADT6n2ZVodVV71Wdg4ha5AcAHlIdgogiIxDEZWDfTDEja73pCwaoThGHLgRwfzS/AWskNVp6tkIDUC2lfK7+DinlUgCfCiEeFUKsEEIUCyEuBwAhxHghxEIhxOtCiNVCiN8KIa4SQnwVel6f0PP+KoR4TgjxSeh5k0P3Jwoh/hJ67hIhhBa6f2DoNZYKIZYLIfoB+C2APqH7HhVCtBZCfCiE+Cb09T9s8HN4hBAvhb52rhAi+fgfVAgxQQjx39DXvyGEiNqWO6H5/y/BXKaciOztHt3QfqQ6BBG1TCCIXJh71RLFhru8RHj3cTeM6PiFbmhTovj6rJEUaGlhmwNg8UnuvwTAGQByAZwH4FEhREbosVwAt8G8bnQagEwp5QgALwC4tcFr9ARwNsyzKs8JIRIB3AIAUspBAK4E8FLo/psA/F5KeQaAYQA2A7gHwDop5RlSyp8BOAwgX0o5FGZjmxU6mwIA/QH8SUo5GMD3OO4shhCiIwAdwHmhr18E4I4m/q7CohtaGwBvAUiJxusTkRJ/4WJSRPYVCKIjgH8AOOFNHVG0eDp8uld1hjgmALysG1q0RsRZIykQrfnlYwC8JqWslVIaABYCqF9i+2sp5TYpZSWAdTBX/AWAYpj/UfVel1LWSSnXAPgWwIDQ674CAFLKMgDfAcgE8F8A9wohfg6gh5Ty0EkyCQAPCyGWA/gAQBccnQ6wSUr5WejjV0Pfp6EzAWQD+EwIsRTAtQB6NOUXEg7d0ETo+yuff09EEdUa5jZA7VQHIaKmCQThATAXUej3iU7Hm/FmN9UZ4lwKzL65TQy/J2ukKGppYVsCIO8k959uCm1lg4/rGnxeB3MT5XryuK+Tp3pdKeUcABcDOATgX0KIc07ytKsApAHIC521MAAknuZ7NSQAvB86s3GGlDJbSnndybK00H0ALorC6xKRen0RowUriCiifg9zdIQodkT1Blerb3urjuEA/QG8EhpciiTWSAq09A3WfwD4hBDX198hhBgOYC+Ay4UQbiFEGoBxAL5q4mtfKoRwheaU9wawCsDHMH/5EOaqYt0BrBJC9AbwrZTyKQBvAxgMoBzHTudtC2CHlLI6NO+84dmE7kKIUaGPrwTw6XFZvgBwlhCib+h7J4sIr2qmG9pFAH4VydckIsuZhCgvWEFEkRMI4nrE6SIrZG2uNsu+U53BQS5G5N+Ds0ZSoEWFrZRSAsgHcL4wl7IuAfBrAHMALAewDOZ/7N1Syu1NfPlVMIfn3wVwk5TyMIBnAbiFEMUA/g5gemi4/nIAK0JD4AMAvCyl3A1zWHyFEOJRmHvODRNCLIL5H1/W4HutBHBtaAg+FcAfj/s5dwKYDuC10HO+CH2fiNANrT/M4X0uFkUU/6K9YAURRUAgiKEAnlGdg5zJmzGPe63G1n2hQaaIYI2khjB/79YihPgrgAVSyrmqs0SbbmgpAL4EN3oncpJyACMK/UVljT6TiGIuEEQSgG+g8A0aOVnd3uRRE1KEqPU0/lyKoO9h9s2rVAc5FSfVSM3Ba73Umw0WtUROkwLgTd3QEht9JhGp8BhY1JIiIum7lSxqlWgD4A3d0Hyqg1DzWLKwlVJOd8KZCN3QroQ5X52InCcb5l5yRGQhgSAmgdfVkkJe/wJemqbOIAAPqQ5xKk6pkZrLklORnUA3tK4wl+/m9h9EziUBTCj0F32gOggRAYEg0mD2zf7GnksUHbI6ecRFh4TnYCy3oKFj1QE4t9Bf9JHqINQ0lhyxjXehJcVfAotaIqcTAP6qG1p71UGICADwIljUkkrevcUsapVzAXhJNzQu4GUzLGzVuB3AyfaRIiLn6YLjVhkkotgLBHETgMmqc5CzeToUHVCdgQCY2+VwVXSb4VTkGNMNLRvAYhzd+JiICAAKCv1Fr6kOQeREgSD6w1wFOVl1FnK2pCFXbXYlbe2qOgcdcVmhv+gN1SEoPByxjSHd0NwA/goWtUR0omd0Q+MUSKIYCwThhbmPI4taUst1eA2LWst5Vje0NNUhKDwsbGPrTgDDVYcgIktKhbnBOhHF1n0A8lSHIHK3XbxVdQY6QUcAT6sOQeFhYRsjuqH1B3C/6hxEZGmX6IZ2meoQRE4RCCIHwM9V5yACAG/nNzuqzkAndbluaPmqQ1DjeI1tDOiG5gLwCYDRqrMQkeXtBJBd6C/apToIUTwLBCEAfAxgjOosREDdjuRR56YJAe5ha03bAQws9BftUR2ETo0jtrHxU7CoJaLwpIHTnohi4VqwqCWLcLVas5pFraWlA3hSdQg6PRa2UaYbWlcAD6nOQUS2coVuaBNVhyCKV4Eg2gP4neocRPU86W8nqM5AjZqmG9r5qkPQqbGwjb5HwJUWiajpHtcNzaM6BFGc+g3M2RFEFiAPeTp+mKM6BYXl8dAuJ2RBLGyjSDe0MwFcqToHEdnSAAAzVYcgijeBIEYAuF51DqJ6ImHnCuGu5CCIPeQAuFF1CDo5FrZRohuagDkXn9dLEFFz/Vo3tFTVIYjiRSAIN4A/gu9/yEI8af8+rDoDNcn9uqG1Ux2CTsQDe/RcBWCk6hBEZGvtwW3CiCJpJoChqkMQHSWlJ/0fmapTUJN0BPAr1SHoRNzuJwp0Q0sGsApAV9VZiMj2agDkFvqLSlUHIbKzQBDpAMoAtFWdhegI98HSViMnZ6uOQU1WDSCn0F+0WnUQOoojttHxc7CoJaLI8AB4XHUIojjwGFjUksW42/93h+oM1CxeALNUh6BjsbCNMN3QugH4meocRBRXfqAb2iTVIYjsKhDEEAAFqnMQHc+bMa+z6gzUbJO5/Y+1sLCNvN8CSFIdgojizixu/0PUbIXgYo5kOTVb3CkreX2tvXH7HwthYRtBuqGNAs8IE1F0DABwi+oQRHYTCOIsAJzxQJbjSlm5TnUGajFu/2MhLGwjJLS9zxOqcxBRXLuP2/8QNdnDqgMQnYw3I9hadQaKCG7/YxEsbCOnANzeh4iii9v/EDVBIIgfABinOgfRiWS5O/WTHNUpKCK4/Y9FsLCNgNDc+l+rzkFEjnCDbmhcdZ0oPIWqAxCdjEjcUiJcNQmqc1DEzNQNLUN1CKdjYRsZlwHoqzoEETlCAoC7VIcgsrpAEJcAGKY6B9HJeDq9W6s6A0WUD8CdqkM4HQvbyLhHdQAicpTrdUPrqDoEkVUFgnABeFB1DqKTk7Ve/4Js1Sko4m7kOhhqsbBtId3QJgMYrDoHETlKMoDbVIcgsrCrAbBwIGvylJcI7/ftVcegiGsN4FbVIZyMhW3L3as6ABE50k90Q0tRHYLIagJBeMF1L8jCPKkf71WdgaLmp7qhtVIdwqlY2LaAbmjjAYxSnYOIHKkdgJmqQxBZ0FUAeqkOQXQq3ox53VVnoKhJBfe1VYaFbctwtJaIVArohpaoOgSRxQRUByA6JVG13tVqPU+8xLc7dEPjitcKsLBtJt3Q8gCcrzoHETmaH8CPVYcgsopAEOeC616QhbnbLtuoOgNFXRcA16oO4UQsbJuPo7VEZAU/0w3NozoEkUVwtJYszZM+j4tGOcPduqG5VYdwGha2zaAbWhaAfNU5iIgA9ARQoDoEkWqBIPoDmKQ6B9Gp1e1xt/9qoOoUFBN9AVyqOoTTsLBtnnsACNUhiIhC7tENjcckcrrbwL6ZLEwkb1gpRB1H8ZzjHtUBnIaFbRPphtYDHB0hImvhLBJytEAQqeA1bWRxXv8CFrXOkqsb2oWqQzgJC9ummwmA17MRkdX8VHUAIoVuAJCsOgTRqckqT9q/OA3ZeW5XHcBJWNg2QWiBFp4RJiIrOls3tL6qQxDFWiAIL4CfqM5BdDrCu3eF8FSkqM5BMXduaLYnxQAL26a5EOb2GkREVsStf8iJLoO5vQaRZbk7fnhAdQZSQgCYoTqEU7CwbZrrVAcgIjqNa7m9ADkQp/qR5Xkzgn1UZyBlZuiGxporBvhLDpNuaBngNgJEZG2dAVygOgRRrASCGAJgmOocRKflOrzalbiNswqcqzuA81SHcAIWtuG7FgBHQojI6jizhJxkmuoARI1xt/t6m+oMpBz75hhgYRs+XrtGRHYwWTe0TqpDEEVbIAg3uP0e2YA348001RlIuSm6oXVQHSLesbANg25o4wD0U52DiCgMXgDXqA5BFAM/ABd0JMurNVxtlmWpTkHKJQC4WnWIeMfCNjycPkBEdsJjFjkBpyGT5blar1ktBITqHGQJnP0ZZSxsG6EbWhsAP1Kdg4ioCQbohjZadQiiaAkE0QbAD1XnIGqMx/+PRNUZyDIG64bGxe6iiIVt464EkKw6BBFRE3HUluLZjwAkqQ5BdHqywtPxPzmqU5ClsG+OIha2jWMDJCI7ukw3tNaqQxBFCa8jJ8sTCTtWCHcVT8BQQ1fqhsY2ESUsbE9DN7SBAIarzkFE1AytAVymOgRRpAWC6AFgnOocRI3xdPpXleoMZDltAUxVHSJesbA9vUtVByAiagGuD0Dx6GqAi/GQ1UnpSf9Hf9UpyJIuUR0gXrGwPb181QGIiFrg3NACeETxhKshk/W5K0pdCXu4fy2dzATd0HyqQ8QjFranoBtabwCDVecgImqBBACTVIcgipRAEIMAcBSMLM/d/vNdqjOQZbUCcK7qEPGIhe2pcbSWiOIBpzxRPLlQdQCicHg7v9lZdQaytItUB4hHLGxPjYUtEcWDibqhcR9FihcsbMn6RM1md+tV/VTHIEtjYRsFLGxPQjc0P4BRqnMQEUVAawDnqQ5B1FKBIFLBvplswJVS8q3qDGR5XXRDy1MdIt6wsD25yeDvhojixw9VByCKgB8AcKsOQdQYb3qQe4hTODhqG2Es3k6OU52IKJ5MVB2AKALYN5MNyO/dqZ8OUp2CbOFi1QHiDQvb4+iG5gWn7RFRfOmiG1qu6hBEzRUIwgXgAtU5iBojEjeXCFetV3UOsoUhuqF1VR0inrCwPdFYACmqQxARRRi3/SE7OxNAB9UhiBrj8f+zTnUGshVOR44gFrYn4lQnIopHLGzJztg3kw3IGm+ndwaqTkG2wunIEcTC9kR880dE8WiUbmjtVIcgaiYWtmR9nu9XCG85j7PUFJpuaFxsLEJY2DagG1oPAANU5yAiigI3gAmqQxA1VSCIrgB4jThZnqfDx/tVZyDb8YFr+0QMC9tjjVUdgIgoisaoDkDUDFw0imzBmzG3p+oMZEvjVAeIFyxsjzVadQAioijiMY7siG/6yPpE1beu5I09VMcgWxqlOkC8YGF7LDYsIopnubqhJasOQdREnGlAluduu3ST6gxkW0N1Q/OpDhEPWNiGhC7c5obaRBTPPACGqw5BFK5AEF0A9FKdg6gxnow3U1VnINtKAJCnOkQ8YGF71AiYi6sQEcUzzkwhO+FoLdlA3W53u6+5zQ+1BPvmCGBhexQbFBE5AY91ZCcsbMnyRPL6MiEk31NTS3ANjAjgH+FRfLNHRE7AYx3ZCd/skeV5/fM5449ain1zBLCwPepM1QGIiGIgTTe0vqpDEDUmEEQSgMGqcxCdnqz0dPp3juoUZHsZuqFxVe0WYmELQDe0/gA6qM5BRBQjPDNMdjAU5oJnRJYlvHtWCPeh1qpzUFzgDJUWYmFr4ps8InISdp5kByNUByBqjDvtg4OqM1DcYD3SQixsTWxIROQkPOaRHYxUHYCoMd70t3hpB0UKTzq3EAtbExsSETlJjm5oKapDEDWCI7Zkba5Dq1yJ2zurjkFxI1c3tGTVIezM8YWtbmhtAGSrzkFEFENusGggCwsE0RZAL9U5iE7H3e6rbaozUFzxABimOoSdOb6wBZAD/h6IyHm42ixZ2QDVAYga482Y51edgeLOINUB7IwFHZCpOgARkQI89pGVsbAli6vd7mqznO2UIo19cwuwsGUDIiJn4rGPrCxLdQCi03G1Xr1GCAjVOSjusG9uARa2bEBE5Ew89pGVcSSMLM2T/lai6gwUl9g3twALWzYgInKmLlx9kSyMhS1ZmKzwdPyI10JSNPTQDS1BdQi7cnRhqxuaAMD9x4jIiXj8I0sKBOEF0Ed1DqJTET5jhXBVccSWosENHv+azdGFLYCuAJJUhyAiUoQzVsiK+sDc9oLIkjxp71WpzkBxjX1zMzm9sGXDISIn4zGQrIgLR5GFyTpP+tv9VaeguMa+uZlY2BIRORePgWRFvL6WrMt9sNSVsDdNdQyKa+ybm4mFLRGRc/EYSFbEwpYsy5P62S7VGSjusW9uJha2RETOxWMgWRGneZJleTLmdVWdgeIe++Zmcnph2091ACIihTrohtZedQii4/RUHYDopETNRnfr1VxNnqItXTe0FNUh7Mixqw7qhuYB0Et1DiIixTIBfKk6BDWdEOKOk9y9H8BiKeXSWOeJhEAQLgAdVecgOhlXSvF6AN1V5yBHyASwWHUIu3HyiG13OLiwJyIK4X559jUMwE0AuoRuNwAYD+B5IcTdCnO1RBrMfRyJLMebEWyjOgM5BgffmiGswlYI8Ug499kMV7QjIuLomJ11ADBUSnmnlPJOmIVuGoBxAKarDNYCftUBiE5O7nenfj5IdQpyDPbNzRDuiO35J7lvYiSDKNBBdQAiIgvgsdC+ugOoavB5NYAeUspDACrVRGqxdNUBiE5GJG4qEaKWM/0oVtg3N8Np/0CFEDcDmAmgtxBieYOHUgB8Fs1gMZCqOgARkQXwWGhfcwB8IYT4R+jziwC8JoRoBaBUXawW4YgtWZLH/47qCOQsLGybobEzT3MAvAvgNwDuaXB/uZRyT9RSxQYbDBERj4W2JaV8UAjxLoCzAAgAN0kpF4UevkpdshbhiC1ZkKzx+v85UHUKchT2zc1w2sJWSrkfwH4hhA5gu5SyUggxHsBgIcTLUsp9sQgZJWwwREQ8FtrdEgBbEerPhRDdpZQb1UZqEY7YkvV49q8QngNnqI5BjsK+uRnCvcb2TQC1Qoi+AP4Mc6WuOVFLFRtsMEREPBbalhDiVgAGgPcBLADwTuhfO2NhS5bj6fjRftUZyHHYNzdDuBfB10kpa4QQlwB4Ukr5tBBiSTSDxQAbDBERj4V2dhuA/lLK3aqDRBCnIpPleNPn9VSdgRyHfXMzhDtiWy2EuBLANTh6NtgbnUgxwwVTiIh4LLSzTQDibSSJI7ZkLaJqnSt5Uw/VMchxWNg2Q7iF7QwAowA8JKVcL4ToBeDV6MWKCTYYIiKgjW5odj9R6VTfAvhICPG/Qog76m+qQ7UQC1uyFHfbbzarzkCO1E43tHDrNAoJayqylLJUCHEXgEwhRA6AVVLK30Y3WtSxsCUiMqXCvFaT7GVj6JYQusWDFNUBiBrydH6Ts1pIBReAdgDsvgtNTIVV2IZWQn4JwAaYWwp0E0JcK6X8OHrRoo6FLRGRqQNY2NqOlPJ+1RmiwKc6ANFRdbvcbRdzmx9SpQNY2DZJuItHzQIwQUq5CgCEEJkAXgOQF61g0aQbWgKA1qpzEBFZBE/02YgQ4kkp5e1CiPkA5PGPSykvVhCrxQJBeBD+JVJEUedK/rZMCDlGdQ5yrA4A1qgOYSfhFrbe+qIWAKSUq4UQdr4mi9NKiIiO4jHRXl4J/fuY0hSRx9FashRP+nw7v9cl++NJ5yYKt7BdJIT4M452plcBWBydSDHRSnUAIiIL4QwWG5FSLg79u1B1lghjYUsWIis9af/OUZ2CHI31ShOFW9jeDOAWAD+FeY3txwCejVaoGAj35yYicgK36gAUPiFEMU4yBRlm/yyllINjHClSWNiSZYiE3cXCfXiY6hzkaOybmyjcVZErhRDPAPgQQB3MVZGroposuthQiIiO4jHRXiarDhAlLGzJMjwdPzikOgM5HvvmJgp3VeQLATwHYB3MM8K9hBA3SinfjWa4KGJDISI6isdEG5FSfgcAoT3lt0kpD4c+T4K994FlYUuW4ckI9lWdgRyPfXMThbv64CwAmpRyvJTybAAagCeiFyvqOBWZiOgoHhPt6Q2Ys6jq1YbusysWtmQNrkMrXb4dGapjkOOxb26icAvbHVLKtQ0+/xbAjijkiRWeASEiOorHRHvyNLwsKPRxgsI8LWXn7BRH3O2/tPN7XIof7JubKNwzASVCiH8CeB3mghWXAvhaCHEJAEgp50UpX7SwoZAleCpSNruku67xZxJFkairUR2BmmWnEOJiKeXbACCE+CGAXYoztQRHbMkSktt86PYcbLdRdQ5yNinqalVnsJtwC9tEAAaAs0Of74S57+FFMAtduxW2J1tNkij2Vt6zove+7wa6ILupjkKOloBeqiNQM9wM4NXQ4o4AsBnANIV5WoojtmQJcu2tqX2qPnQLyC6qs5Cjedk3N024qyLPiHaQGOMZELKEio7ftlp2+NLWAw//c1ECDnFbAVKFx0R7Wi+lPFMI0RqAkFKWqw7UQpw5QJZwwN0pe2li/p6Bh/+5OAGH81TnIcdi39xEYV1jK4ToJYR4XAgxTwjxdv0t2uGiiA2FLMGT8Vb/GpHQblnilKF73N0/kscuBEMUKzwm2tNaIcSjALrFQVELANxehSyjRiSmLkvMH7LX1fUjyZl+pAb75iYKd/GotwBsAPA0zBWS6292xbPCZAmuhN2d4K5YCSFc6xLGjF/vHfWNBPaqzkWOw2OiPQ0GsBrAn4UQXwghbhBCtFEdqgUqVAcgOoYQrrW+cePXe8/8WgL7Vcchx2Fh20ThFraHpZRPSSmLpJQL629RTRZdbChkGe72/91Z//FuT69hxb6LDtbCs1JlJnIcHhNtSEpZLqV8Xko5GsDdAO4DsE0I8ZIQwo57cHLElixpt6f3iBW+C/fVwr1KdRZyFPbNTRRuYft7IcR9QohRQoih9beoJosuNhSyDG/Gm8fslVfpSum6JHFqr4Oi/SeqMpHj8JhoQ0IItxDiYiFEEMDvYc6k6g1gPoB/Kg3XPByxJcs67GrbY0ni1O4Vot2nqrOQY7BvbqJwV0UeBHOlxXNw9BpAGfrcjjjtjizDnVKWCdRsBjxd6++Twp1YmjhxbJfqZZ9m1JQMF9wGg6KLx0R7WgOgCMCjUsrPG9w/VwgxTlGmluCILVmaFJ6kksRJY7pWL/kkvWblSMGVvCm62Dc3UbiFbT6A3g03grc5XidBluJKKV1XVz646/H3b/Hmjtnvylg5oOrDFAF5wuNEEcJjoj0NllIeONkDUsqfxjpMBLCwJVvY7B0ydr+rc0n/qv+0F5CdVeehuMW+uYnCnYq8DEC7aAaJsb3g6rNkId6Mt1JO9dgBd6espYn5yVVIXBTLTOQou1UHoGb5gxDiSN8shGgvhHhRZaCWeCIf1eAIBdlEuds/cGlivq8aid+ozkJxi31zE4Vb2PoBlAkh/hUP2/0U+ovqwLMgZCHu1E9yAPn9qR4PbTswdI+rG7cdoGjYozoANctgKeW++k+klHsBDFGYJxI4aku2USMSOyxNzD9jr6sL+2aKBha2TRTuVOT7oppCjd0A2qsOQQQAwlWTIBK3LJaHu4469ZOEa51v7PgONeu/7lX9334ivmZRkFrsPO3JJYRoHypoIYRIRfj9ulVVADjlDBYiyxHCtdZ39viONeu+6ln9ZX8BtFUdieIG++YmCmvENrS1TxnMziYFwEqbb/cDsLGQxXg6vRvW9Pjdnl7Di32Ty7ntAEVIHYB9jT6LrGgWgM+FEA8KIR4A8DmA3ynO1FIcsSVb2uXpU78l0GrVWSguVBcUFJSrDmE3YRW2QojLAHwF4FIAlwH4Ugjxo2gGiwEWtmQpXv+CbECGtbR7patNtyWJP+rBbQcoAvYWFBRwzQEbklK+DGAqAAPATgCXSClfUZuqxQ6qDkDUXKEtgbpViLafqc5CtsdLhJoh3GtsfwFguJTyWinlNQBGAPhl9GLFBAtbshTh/b49POUl4T5fCndiSeKkMVs92Z9IoDKa2Siu8Vhob6kADkopnwawUwjRS3WgFtqhOgBRS5hbAl141nbPgI8lEC+7iVDssW9uhnALW5eUsmFns7sJX2tVbDBkOZ4OH+9t6tds8Z4xtizhvHUSYks0MlHc47HQpoQQ9wH4OYD/Dd3lBfCqukQRsVV1AKJI2OQdOm5VwjlrJMQ21VnIltg3N0O4xel7oRWRpwshpgN4B8A/oxcrJjjET5bjzXize3O+7oC7U/bSxPykKiQujnQmins8FtpXPoCLEZq+K6XcCvsvvMQigOJGuTt94NLEKd5q+LglEDUVC9tmOG1hK4ToK4Q4S0r5MwCzAQwGkAvgvwD+FIN80cQGQ5bjSt7QC6JqfXO+NrQl0JC9rq7cdoCagsdC+6qSUkqE/t6FEK0U54kEjthSXKkRSR2XJubn7uOWQNQ07JubobER2ycBlAOAlHKelPIOKWUA5mjtk9EOF2VsMGRJ7rZLNzb7i4VwrfWNG7/ee+bXkns1U3h4LLSv14UQswG0E0JcD+ADAC8oztRSLGwp/giXe43v7PEbvCO+Yt9MYX6QB/wAACAASURBVGLf3AyNFbY9pZTLj79TSrkIQM+oJIodNhiyJE/GvBbvT7vb07t+2wFuCUSN4bHQpqSUjwGYC+BNAP0B/EpK+ZTaVC3Gwpbi1i5P35ErfBfurYN7jeosZHnsm5uhscI28TSPJUUyiAJsMGRJ7nZf5wB1Lb7uMbTtQHduCUSN4LHQxqSU70spfyalvAvAf4QQV6nO1EIsbCmuHXa17bkkcWqXQ6INtwSi02Hf3AyNFbZfh6Y3HUMIcR0Auy9SY6gOQHQyQtS5RfKGlZF4LXPbgUljtnmyue0AnQqPhTYjhGgjhPhfIcQzQogJwvQTAN/C3Gvezrh4FMW9OuFJXpE4uX5LoGrVeciS2Dc3Q2OF7e0AZgghPhJCzArdFgL4HwC3RT9eVG0DN4Ini/L6F7gj+XqbvWeMW5Vw7hoJwdEQOt5a1QGoyV6BOfW4GGZ//G8AlwL4oZTyhyqDtdQT+agAr0Ekh9jkHTpudcI5q7glEJ0E++ZmOG1hK6U0pJSjAdwPYEPodr+UcpSUcnv040VPob9Igo2GLMqT9q+BgIzoCGu52z9waWK+rxqJ3HaA6kkAvNbLfnpLKadLKWcDuBLAMACTpZRLFeeKFJ6AI8f43p2eszRxiqcaviWqs5Bl1AJYpzqEHYW1j62UskhK+XTo9p9oh4qh1aoDEJ2M8FSkCO+e4ki/bo1I7LA0Mf+Mvdx2gEybCgoKDqsOQU12ZOqilLIWwHopZbnCPJHGwpYcpUYkpS1NzB+8z5XxkeosZAkbCgoKOEW9GcIqbOMYC1uyLHfH/0RnqrwQrrW+s8dv8I7klkDEY6A95Qohvg/dygEMrv9YCPG96nARsEl1AKKYEy73Gp82foN3+BcSiIe/Y2o+9s3NxMKWyKK8GcE+0Xz9XZ4+9VsC8e/Aufh/b0NSSreUsk3oliKl9DT4uI3qfBFQpjoAkSo7Pf3OLPFN2s0tgRyNfXMzsbAlsihX4rYucB2OahsNbQnUrUK05bYDzsRjIFlRqeoARCodcrXrtSTxks7cEsix2Dc3k9MLW54NI0tzt/s66islmlsCXVi/7QC3BHIWHgPJikpUByBSrU54W61InHzWdnf/hdwSyHHYNzeTowvbQn/RbgB7VOcgOhVvxptpsfpem7xDx61KOGcNtx1wFJ4VJivaAKBCdQgiK9iUkHf26gStTELYejcSahL2zc3k6MI2hI2HLMvVZlkWUBuzTbrL3ekDlyZO8VbDxy2B4l81gPWqQxAd74l81IHX2RId8b07Y9CyxCnuavjiZUsvOrXDADaqDmFXLGxZ2JKFCQHhar0mpm20RiR1XJqYn7uPWwLFu28LCgpqVYcgOgVORyZqoNrcEmjQfm4JFO/WFhQU8L1XM7GwZWFLFudJf8sX828qXO41vrPHb/CO+IpbAsUtHvvIyriAFNHxhMu92qeN/8477AsJxNPe1XQU++YWYGHLBkQW5+lQNAiQSq432+XpO3KF78K93HYgLvHYR1bGEVuiU9jhyTyzxDdpVx1c61RnoYhj39wCLGzZgMjihLsqSSTsWKHq+/9/e3ceJldZ5n38e9fS3YSEQEioBHwFCasEQYLIHhoEB0XgEEedM+I24zgjI2PP6IyjUfG1HHVczquOc8m4oIOMjoINssgmFfY9ewIEsrGFTkLIvnc/7x/ntGmakPRSVc85Vb/PdfVFr6d+qYR+6j7Pcm/JjT5kZtvUg9R2oOHod5+kmWZsRXYjbgk0dfxmG/WA7yxSVRqbh0GFbTx4bvEdQmR3Cgfc5rUNT48VRsxru6C3JZDaDjSGx30HENmNJcBm3yFE0ixuCfSeU7vyR6glUOPQ2DwMTV/YlkuV7cBjvnOI7E5h/A1HgvN+mMBzxRPOXNhy9lNqCZR5m4DZvkOIvJ7kZOQnfOcQyYJnW06csrDlrCcc1K2LgtTEesDbCr1G0PSFbULLOCTVci2rx5HflIqleevy4yfNaru4sJ3Wmb6zyJA9GobhDt8hRPZArU1EBmhd/sC3zG672HbQopuW2fVwGIY9vkNkmQrb2IO+A4jsSX6/B1b5ztBrR9x24C1rchPu9p1FhkS/8yQLdNNZZBC224gDZrZdcsza3HiNzdmksXmYVNjG9A9JUq944HUH+s7wKpbLP93aPmVp8W0POVjnO44MigoGyYL7fAcQyRzLFRa2nj1lWXHyg2oJlDmqR4ZJhS1QLlW6gMW+c4jsTn7kU4djO573naO/lYXDT57f+q6X1RIoUx7yHUBkT6KAp4DUrFQRyZIVhSNPmd96/kq1BMoMhwrbYVNhu5P+MUnq5UbNT+UNmLjtwCUHqiVQJjwThuFK3yFEBki/U0SGaHNuv0Nntk0tbbFReo2bfk+GYbjGd4isU2G7k/6nl9Qrju8c6TvD64nbDlxw2kv5I9V2IN20DFmyRMuRRYahx4oj57a955QV+cPvdqBDA9NLdUgVqLDdSS/2JPXyY+47Flyq97M+1zJ5ysKW9icd9pLvLLJLGjwlS1TYilTBspa3TXm6Zcp8Byt8Z5FdUh1SBSpsd5oDbPQdQmR3LNddtLbn5/vOsSfr8hOOnd12cX47rWrXkT4aPCVLZgCbfYcQaQRr8wcdN7vtYtQSKJV007kKVNgmyqVKN/Co7xwie1Io3ZKJHmfb45ZAx67NTZjuO4v8iZq/S6ZEAdvQ2CxSNb0tgdblSmoJlB5rgCd8h2gEKmxfTXdLJPWKB9x8DLhs7JOxXH5ha/tZy4onPqS2A6nwiJq/SwZpObJINVmu8FTrOVOWFU940MEG33GEh8MwdL5DNAIVtq+mJXqSelZcvy+FdZmadVtROOLk+a3vWqW2A97pd5xkkU5GFqmBFYWjTpnfen5XD7lUdlxoIhqbq0SF7avdh06Mkwwo7H/PWt8ZBituCTR1/GYbpV/g/kz3HUBkCO4HtNJApAY25/abOLNt6rgtNlKrFv2Z7jtAo1Bh20e5VFmDliNLBhQnXHuI7wxDEbcEes+pXfkj1BKo/tYD9/oOITJYUcBa4DHfOUQaVY8VR81tu/CUFfnD1BKo/tagGduqUWH7Wrf4DiCyJ7kRzx6Mbcvs0qFnW06csrDlrCccdPnO0kTuDMNQNxMkq272HUCk0S1rOam3JdBK31mayB1hGOpmQpWosH0tDZ6SCfnRs57znWE41uUPfMvstotNbQfqRjftJMv071ekDpKWQD07KM7xnaVJqO6oIhW2/ZRLlblApgsGaQ6FCdeN8Z1huHrbDqzNjVfbgdpTYSBZ9jjwku8QIs1gu40ozWqbevS63AEam2vLAX/wHaKRqLDdNf0jk9TL7/voMdDzsu8cw2a5wsLWs6csK05W24HamR2G4Yu+Q4gMVRToBaBIPTnLFZ9qfceUZwtvfcDBRt95GtTjYRiu8B2ikaiw3TUtC5DUM3M5G7HkSd85qmVF4chT5reev0ItgWpCv9OkEejfsUiddRWPPnVB65+91ENuie8sDUi/06pMhe2u3QFs8h1CZE+KpRvzvjNU0+bcfofObJta2mKjdDp5dV0/3AuYWdVn083sCjP7TPL+UWY2y8xmmtlEM3sg+fwhZjYvef8sM7vpda51upk9YmZPJm9/M4DH/9O108jMupPnZJ6Z3Whm+9bhMff4nOzh72GpmY2tTTpuBbbU6Noi8jo25cZMnNk2dewWG/mQ7ywNRmPzrn9myGOzCttdKJcqm4kHUJFUKxxw+yRwW33nqKYeK46c2/aeU1bkD1fbgep4nmy0SrkYuME591bn3CLn3KkD/UEzGw/8D/C3zrmjgNOBT5jZu2uUtV42O+eOd85NAlYDl/kO5FMUsBG403cOkWaUtAQ6eWV+4t0Oun3naQBLwzCc5TvEAGRqbFZh+/o6fQcQ2RPLbx5pxdWpnXEajmUtb+ttO6D9J8NzfRiGrhYXNrP3mNnDyZ3cO82slHz+CjP7mZlNN7PFZnZ5n5/5gpk9ZWZ3Akcmn3sX8Gngr82sknxuMHehLwN+7pybAeCcWwX8M/C55Fo/N7Pvm9kDSZ737uLPcq+ZHd/n4/vN7C2DfEpq6UHgoN4PzOyzZvaomc0xs6/0+fyHks/NNrOrzWyUmS0xs2Ly9X2SWdWimR2W/L3NNrMZZjax7wMmd83vTb42w8z6vqDZx8w6zWyBmf3IzF7zesLMPpjcqZ9lZleaWTVWmGhsFvFoacvbpzzTcuZctQQatpr9LmvmsVmF7eu7CVDPR0m9/Lg7G/ZQh6TtAGoJNCy1LATuA052zr0V+DXxgNXrKOCdwEnAl5NCajLwAeCtwCXA2wCcc7cAPwIi51z7EHIcQ3xqbl+PJZ/vNYH4bvEFwDd2cY2fAB8BMLMjgFbnXCraXSQF4TnA75OPzwMOJ35ujwcmm9mZZnYM8AXgbOfcccA/OOfWA9OB3jvkHwCuc85tB64Bfph876nA8n4PvQI41zl3AvB+4Pt9vnYS8E/AscBE4r/PvpmPTn7mNOfc8cQzPH85zKcC4udAs0UiHq3Jv+H42a0Xde+gONd3lgzT2Byr6tiswvZ1lEuVNcQvBkRSrTj++sN8Z6il3pZA63IltR0YvJeBWj5vbwBuM7O5wGd59WB1s3Nua3KHdgVQAs4AOp1zm5xz60gKtSow4rYJ/fX93PXOuR7n3IIkS3+/BS5IZjY/Bvy8StmGYy8zm0X89ziG+PwHgPOSt5nADOIXKocDZwPXJs85zrnVyff/BPho8v5HgavMbBRwkHOuM/neLc65/mdLFIEfJ3+/vwXe3OdrjzjnFjvnuoFfEb8w6escYDLwaPJnOAc4dGhPw05RwCriF20i4tH23N7jZ7VNPUotgYZkBXB/Da/ftGOzCtvd05InSb1c20sHktv8lO8cNWW5wlOt50xZVjxBLYEG58YwDGs5u/UD4D+cc8cCnwDa+nyt797vbqCQvF+LZdHzgRP7fW4ysOB18lj/CyRF3R3ARcD7iPcF+bY5me08GGhh5x5bA76e7L893jl3mHPup7zOiwjn3P3AIWY2Bcg75+axi+dgFzqALuA44ue3pe9l+z9Mv48N+EWfjEc6564YwGMOxLVVuo6IDINaAg3Z78Mw7Knh9Zt2bFZhu3vXoeXIkgH5fR/pv4SwIa0oHHXK/Nbzu3rILfadJSN+XePrjwZeSN7/8AC+/x4gMLO9khnD91Qpxw+Bj/TuwzGz/YFvAv8+yOv8hHi57aN9Zju9c86tBS4HPpPctb4N+JiZjQQws4PM7ADgj8D7kj8/Zjamz2X+m3hm9arkmuuA583s4uR7W81sRL+HHg0sd871AJcCfffInmRmb0r21r6f186i/hF4b5ILMxtjZgcP64nY6VfAtipdS0SGKWkJtFwtgQZMY/PgDHhsVmG7G+VSZQXxXluRVCtO+N2ulm80pM25/SbObJs6bouNVEug3XuWnUtXq2GEmT3f5+0fgSuA35rZvcCqPV0gOUDif4FZxDcO761GMOfccuCDxMtmnwQeAH7mnLtxkNd5HFhHUvyliXNuJjAb+IBz7nbiu9YPJkvNrgVGOefmA18D7jaz2cB3+1ziGmA/4qKw16XA5WY2h/g5G9/vYf8T+LCZPQQcwatnZB4k3g81D1hCvxVOybKyacDtyfXvIN5LNWxRwMvAoP5uRaS2NuXGHDar7ZL9t9reagm0e0uAu6p4PY3NfZhzNTkss2FM62p/NypuJeWcw2168M4uyPd/YdrQDt72yN3jup85zXYupZGd/m8Yhl/2HSJLzOxA4rMVjkpmKRtGctrkRc65S31nqYaOTi5Axa1IKh2y7aHpY7sXn2GvXuUhsS+FYfhV3yGyZDBjs2Zs9+xW4EXfIUR2xwzLjVz4tO8c9bas5aTelkBqO/BqjhTOOqaZmX0IeBj4QgMWtT8gnl1tpBdTtwIv+Q4hIq+1tOXks55pOWOOxubX6CEdBxNmxmDHZs3YDsC0rvavAZ/3nUNkd7avOO/Rbc/869t85/Ch6DZ1Tdpyc1eB7WnqO+rTnWEYnus7hEgtdXTyLeAzvnOIyK619GxcfszWW1YV2H6s7ywpcWsYhuf7DtHINGM7MD+jNqeFiVRNYez0Y+E17TqawnYbUZrVNvVotR34k5/6DiBSBz/3HUBEXt+23N4TZrVNPWp9btw9vrOkhMbmGlNhOwDlUmURte0FKTJsltvWZq1d83zn8EVtB/5kNWpVJk0gCpgPPOY7h4i8Pme54pOt5575XOH4+x005c33xCqq1x9WXocK24HTXRZJvcK427bu+bsaW9J24KUmbjtwTRiGTf/vQJqG9pKLZMBLxTeftqD1nS/0kFvqO4snV4dhqDZlNabCduCuA9b6DiGyO4XxNxwFjXXwzVBsyo2ZOLNt6tgtzdl2QDfhpJn8CtCNHJEM2JTb//BZbZfst9X2fth3Fg80NteBCtsBKpcqm4n7BoqkVq7llXHkNy7wnSMNeqw4am7bRSevzE+820G37zx1MiMMw9m+Q4jUSxTwClreJ5IZ3dYyek7rhSetyr9pehONzQ+HYTjfd4hmoMJ2cHS3RVKvMOb+PTbjbiZLW94+5ZmWM+c2SdsB/Y6SZvQT3wFEZBDMbEnLKb0tgZrhNYvG5jpRYTsI5VLlcUCzIZJqhQm/e4PvDGmzJv+G42e3XtS9g+Jc31lqaAtaVSJNKAq4HWjk/7dFGtKa/P9565zWi7bvoNjIs5kbgV/7DtEsVNgOnu4MS6rlRy48DNvxrO8cabM9t/f4uO3AAY3aduDaMAzX+A4h4sl3fQcQkcGLWwJdcvj63NhGHZt/E4bhet8hmoUK28G7CnjZdwiR3cmNmtusJwLvVtx24B29bQcarSXQd3wHEPHof4AXfYcQkcFzlm95svW8M58vHNdoLYEcGpvrSoXtIJVLlY3AD3znENmd4oTOfXxnSLOk7cCLDdR24A9hGM7yHULElyhgGxqbRTJtefGY055oPe/5HnLLfGepkht1aFR9qbAdmu8DG3yHEHk9+f0emARO7al2I2k7MGZrY7QE+prvACIp8CM0Notk2sbc2CNmtV2y71Yb8YjvLFXwb74DNBsVtkNQLlVeIR5ARVLJct1Fa3tObX/2oNta9pnTdtHJK/OHZrntwL1hGN7vO4SIb1HAGnT6qEjmxS2BLnrbqvwhdzvo8Z1niO4Kw7AZ+/V6pcJ26L6DmsJLihVKNzvfGbJiacvJvW0HstgSSHeERXaKyO5NKhHpZWZLWk6dsqjl9Fkum2fbaGz2QIXtEJVLlZeID5ISSaVi6ZZjwO3wnSMrkrYDO3ZQnOc7yyDMCMPwVt8hRNIiClgGXOs7h4hUxyv5N54wp/XCrd0UsrRX9ZEwDP/oO0QzUmE7PP+O7gxLSllhw2gKa7NUpHmXtB04Yn1uXFbaDnzDdwCRFPqW7wAiUj3bciMPnNk29fANtn9Wxuav+w7QrFTYDkO5VFmCmi5LihXGTtcBUoMUtx04t7clUJrbDjwFXOc7hEjaRAGPA3f7ziEi1eMs3/JE2zvPfL7wlvscbPadZzfmAzf4DtGsVNgO39eJ+1SJpE5x/O8O8Z0hq5KWQC+kuCXQN8MwzOqhGiK1VvYdQESqb3lx0ulPtJ73bA+W1pZA3wzDUHWBJypsh6lcqswHfu87h8iu5EY8dzC2bZHvHFmVtATab6vtnbaTDZ8Ffuk7hEhaRQF3AtrjJtKANubGHjmrbWoaWwItAX7lO0QzU2FbHTr5TFIrP3rGc74zZFncduDCk1bl35SmlkDfDsNwu+8QIin3ObSiSqQh9bYEejl/cJpaAn0rDEMd2umRCtsqKJcqj6A7w5JShQm/2993hswzsyUtp5y1qOX02Q5WeU6zEviJ5wwiqRcFPIZOSBZpXGa2uOW0KYuLp810sNpzGnVLSQEVttWjO8OSSvl9HzsGenwXYw0hbjtw0fYdFH22HbgiDMM0H5whkiZfADSDItLAVhcOnjyn9cLN3RQWeIzx5TAMt3h8fEGFbdWUS5XHgKt95xDpz8zlciMWP+k7R6NIWgIdvj431kfbgfnAlR4eVySTooCngZ/6ziEitbUtN/KgmW1TJ3pqCTQbraRKBRW21fWvwEbfIUT6K4y/seg7QyOJWwKdd+bzhePq3RKoIwzDtOzzFcmKr5Du1l0iUgXO8q1PtL3zzBcKx97noJ6zpx3qUpAOKmyrqFyqvAh8w3cOkf4K426fBG6r7xyNZnnxmNOeaD3v+Tq1Hbg5DMM76vA4Ig0lClgOfM93DhGpjxeLx57+ZMu5S3uwehyeeX0YhpU6PI4MgArb6vs2cSsOkdSw/Ja9rfjyXN85GtHG3Ngj6tB2YDvwjzW8vkij+yb+D5cRkTrZkB931Ky2S0ZtY69Ha/gw24DP1PD6MkgqbKusXKpsAf7Fdw6R/grj7tSBQzXS23ZgVf6Q6TVqO/DDMAwX1uC6Ik0hClgLfN13DhGpn25r3Xd228Unvpw/uFZj8/fCMFxUg+vKEKmwrYFyqfJr4AHfOUT6Koy//jDfGRqamS1pOfWsRS2nz3LwchWv/DLxHkERGZ7/AOqxbUBE0iJuCXTW4uKpM6rcEmgFUK7i9aQKVNjWzj+g9j+SIrm2rgnkNut05BqLWwJduLWbQrVaAn0pDMM1VbqWSNOKArYAl/nOISL1t7pwyIlzW9+zqZvCE1W65BfDMFxXpWtJlaiwrRG1/5E0yu/3cJfvDM1gW27kgTPbph6+wfa/d5iXUnsfkSqKAm4GrvOdQ0Tqb2tu1Btmtk09dKONGe7YrPY+KaXCtrbU/kdSpTjhugN8Z2gWzvItT7S984znC2+5z8FQ9zervY9I9V0OaKZFpAk5y7cuaPuzM14oTLp3GC2BPq32PumkwraG1P5H0ia/z7yjoXu57xzNZHlx0ulPtJ73bA822NPS1d5HpAaigBeBab5ziIg/LxbfcsaTLecuGUJLoOvDMJxei0wyfCpsa+/bwBLfIUR65UY++bTvDM1mY27skbPapo4eREugrai9j0gt/RB4zHcIEfFnQ37c0UlLoIH+LtiM2vukmgrbGkva//w1OkhKUqIw/oYRvjM0o96WQC/nD757AG0HrlB7H5HaiQJ6gL8BtNRfpIklLYEmr86/cSAtgb6k9j7ppsK2Dsqlyl3Af/nOIQJQGDv9WHDa++1D3HZgyuLiaTN303bgMeBb9Ywl0oyigJnAD3znEBHPzGxRy+m9LYFeeZ3vehiI6hlLBk+Fbf18FhjsHjuRqrPc9lZrfWmu7xzNbHXh4MlJ24EF/b60DfioDowSqZsvAoPdYyciDShpCbRxFy2BtqKxORNU2NZJuVRZD3zcdw4RgMIBt+7wnaHZJW0HJvZrCVQOw3Cet1AiTSYK2EB8SrKISO/Y/KaNtl/fsfkrYRhWq/+t1JAK2zoqlyq3Az/znUOkWLrxKHA6qt4zZ/nWJ9reecYLhWPvc/AQ8HXfmUSaTRRwPXCt7xwikg7O8m0L2s7vbQn0ANoelBnmnM40qqdpXe2jgTnAG31nkea28eEb59E9cpLvHALAtpzbceJ3LiloibiIBx2djAFmA2/wnUVEUmNrzm0/4TuXFPtvG5KU0oxtnZVLlbXAh9EpyeJZYcx9L/vOIH/yRRW1Iv5EAauBS9nzqagi0jw+r6I2W1TYelAuVaYD3/WdQ5pbYcJ1mplIh3uI+12LiEdRwHTgG75ziEgq3IVOQc4cFbb+fAHQDI14kx/5zERs+zLfOZrcOuBDSU9NEfHvy8T73UWkea0FPhIFWl2ZNSpsPSmXKluBDxK39xDxIjdq7lLfGZrc5VGAbi6IpEQUsAMIiW86iUhz+vsoUBuwLFJh61G5VJkDfN53DmlexQmd+/jO0MR+GwX8wncIEXm1KGAJ8EnfOUTEi59FAb/0HUKGRoWtZ+VS5TvAb33nkOaUH/PgseDW+s7RhBYAH/MdQkR2LQq4BvTiVqTJzAAu8x1Chk6FbTp8FJjnO4Q0H7Pugu317HzfOZrMWiCIAjb4DiIiu/VJYJHvECJSF6uBqVHAFt9BZOhU2KZAuVTZCATAGt9ZpPkUD7jZd4Rm4oAPRgELfQcRkd2LAtYT77fd7juLiNRUD/CXUcBS30FkeFTYpkS5VHmGeADV6ahSV4XSH44Bpxdu9XFFFHCT7xAiMjBRwCPAp3znEJGa+koUcKvvEDJ8KmxTpFyq/AH4ku8c0lyssGE0hbVaCl97NwBf9R1CRAYnCrgS+KHvHCJSEzehsblhqLBNn38Dfuc7hDSXwtjKet8ZGtyTxP1q1RNPJJs+DdzpO4SIVNUi4FKNzY1DhW3KlEsVB3yY+NRUkbooTvjdIb4zNLB1xIdFqS+mSEYl/W3/HLQ/XqRBbAYuiQKdb9NIVNimULlU2UB8mJTasEhd5PZ6/o3Y1md852hAjnim9knfQURkeJIXwBeigx5FGsEnooA5vkNIdamwTalyqbIQ+CBoeYTUR37fGS/4ztCAylHADb5DiEh1RAFPAe8Hun1nEZEh+/co4GrfIaT6VNimWLlUuQm4wncOaQ7FCdeN8Z2hwdwMfNl3CBGprijgduCffOcQkSG5Gvic7xBSGyps0++rwFW+Q0jjy42ecQz0rPSdo0E8CnxAB1KINKYo4HvAj33nEJFBuQ34K43NjUuFbcolh0l9HJ2ULDVm5nK5vRc95TtHA5gPnB8FbPAdRERq6jLgbt8hRGRAHgPeGwVs9x1EakeFbQaUS5VuIEStBqTGCqXfF31nyLglwHlRwMu+g4hIbSUvkC8CZvjOIiK79Qzwbt1wbnwqbDOiXKpsJT4p+WHfWaRxFcbdOQncFt85Muol4Nwo4EXfQUSkPqKAtcB5xCs1RCR9uoB3RgErfAeR2lNhmyFJG6DzgXm+s0hjsvyWva1l1VzfOTLoFeKZ2kW+g4hIfSUrNM4lnhUSkfTYQDxTu9h3EKkPFbYZCzjU5QAAEZVJREFUUy5VXiG+O6wX0FIThbF3asZ2cDYC74oCdENApElFAcuBdwDP+c4iIgBsB6ZGAY/7DiL1o8I2g8qlynLiu8Na8ihVV5hw/WHgdGLgwGwDLo4CHvIdRET8igKWAecQL30UEX96gI8mrbmkiaiwzahyqbKEeOZ2te8s0lhyrSsmkNv8pO8cGdAN/EUU6FA3EYlFAU8T33jW2CziRzfwkSjgGt9BpP5U2GZYuVSZT7znVqe8SVXl93tYhyzsngM+HgVqwyUir5ZsS/gzYL3vLCJNZgfwl1HA1b6DiB8qbDOuXKo8QtxuYJPvLNI4ihOuG+87Q8p1RAFX+Q4hIukUBTwKvBuNzSL1sg348yjgf30HEX9U2DaAcqlyF/HSp1d8Z5HGkN9n/pHQrT3cr9UN/FUU8D3fQUQk3aKAe4H3oFVVIrW2BQiigOt9BxG/VNg2iHKp8gBwBvCC7yzSGHKjnlDrilfbQnzC4s98BxGRbIgC7iI+LVk3nkVqYzNwYRRwi+8g4p8K2waS7Lk9DVjoO4tkX3H89SN8Z0iRtcQN3m/wHUREsiUKeBg4E1juO4tIg9kAnB8F3OE7iKSDCtsGUy5VlgGng/p2yfDk97/nWHBaQgcvAVOigHt8BxGRbIoC5hGvqlrqOYpIo1hHfMP5bt9BJD1U2DagcqmyEmgH/ug7i2SX5ba3Wuvyeb5zeLYYOD0KmO07iIhkWxSwiHhV1RzfWUQybjXwjijgAd9BJF1U2DaocqmyHngXcK3vLJJdhQP+sMN3Bo9mA6clL0ZFRIYtCniReFlyxXcWkYx6Cnh7cvK4yKuosG1g5VJlG/B+4Ee+s0g2FcffdDS4Ht85PLiHePnxS76DiEhjiQLWEve5VVsSkcG5CzglCtDhlrJLKmwbXLlU6SmXKn8HfNV3FskeK67Zn/yG+b5z1NkNxPt21voOIiKNKQrYBvwF8P98ZxHJiB8Tj806YVxelznnfGeQOpnW1f5J4HtAwXcWyY6tz3x2+o4V7zrLd446uRK4LAro9h1ERJpDRyefAL4PtPjOIpJCPcBno4Dv+g4i6afCtslM62o/C/gNMM5zFMmI7o0TF2+Z/ZNDfeeosW3A5VHAlb6DiEjz6ejkFOIzMQ70nUUkRTYAYRRwo+8gkg1aitxkyqXKdOBE1A5IBii/96JDse3LfOeooZeAdhW1IuJLFPAgMBm4z3cWkZR4jrgrgYpaGTAVtk2oXKo8S9zr9mrfWSQbcvvMWeo7Q408BExWywAR8S05rO5s4Ie+s4h49ihwklrtyWBpKXKTm9bVfjnwbaDoO4uk147Vp87e+uTXjvOdo8p+DPx9coiLiEhqdHTyYeKOBm2+s4jU2ZVARxSw2XcQyR4VtsK0rvaTiffd/h/fWSSdnMvv2PTgHRvA9vWdpQo2An8XBVqxICLp1dHJZOB3wBt9ZxGpgzXAx6OAa30HkezSUmShXKo8BLwVuMV3Fkkns+6C7bVsge8cVbCAeHmTiloRSbUo4HHifbd3+c4iUmMPAserqJXhUmErAJRLlZeBC4DPg1qdyGsVSzf5jjBcVxMXtY1QoItIE4gCVgHnAV8CtnuOI1JtPcDXgTOjgEY+pFLqREuR5TWmdbWfCfw3cLDvLJIebsfeazc9cuMIsKztx15PvF/np76DiIgMVUcnJxCPzcf4ziJSBS8BH4wC/ug7iDQOzdjKa5RLlXuAScB/ArrzIQBYYeNoimvm+c4xSLcBk1TUikjWRQEziJcmf5t4pkskq24FjlNRK9WmGVvZrWT29qfAYb6ziH9bF3/q7h0vXTLFd44BWAP8YxRwle8gIiLV1tHJGcAvgDf5ziIyCNuALwDfiQJNnEj1qbCVPZrW1b4XUAY+jWb5m1rP5oOe2zzzl2k/Pfv3wN9GAct9BxERqZWOTkYC3wU+7juLyADcC3wiCnjCdxBpXCpsZcCStkA/A472nUX82fjQrU/T03q47xy78DLwqSjgV76DiIjUS0cn7yJeWTXedxaRXXgF+Gfgp5qllVrT7JsMWJ+2QF8HdniOI57kRz/2gu8Mu/Bb4M0qakWk2UQBtxAfKPVL31lE+vkf4Kgo4CcqaqUeNGMrQzKtq/0E4tnb43xnkfrqXnPC/C0LvpOWUzm7gE9GAb+r5YOYWTcwFygAS4BLnXNravyYhwA3Oecm7eZ7zgI+45y7YBdfWwqc6JxbVaOIIpIyHZ2cDnyf+Ca0iC+Licfm23wHkeaiGVsZknKpMgN4G3Fvvc2e40gd5UbPeDP0rPQcwwE/J56lrWlRm9jsnDs+KTJXA5fV4TFFRAYlCrgPOBH4W0A3taTedgDfJO5GoKJW6k6FrQxZuVTZXi5VvgocDlyF2g80BTMst/czT3mM8EdgchTw0ShgtYfHfxA4qPcDM/usmT1qZnPM7Ct9Pv+h5HOzzexqMxtlZkvM4j7AZraPmS01s6KZHWZmdybfO8PMJvZ9QDM7xMzuTb42w8xO7fPlfcys08wWmNmPzOw1v9fN7INm9oiZzTKzK80sX/2nRUTSIAroiQKuBI4A/gPo9hxJmsNDxGPz56JAEx7ihwpbGbZyqfJCuVT5GPGy5Ft855HaK4y/ocXDw84B/iwKeEcUMNPD45MUhOcQn7yMmZ1HfGPnJOB4YLKZnWlmxxC3NDjbOXcc8A/OufXAdODdyeU+AFznnNsOXAP8MPneU+E1JzqvAM51zp0AvJ94qWGvk4B/Ao4FJgKX9Mt8dPIzpznnjid+kfuXw3wqRCTlooBXooBPES9Lnu45jjSuhcRjzKlRwBzfYaS5qbCVqimXKvPKpcq7gbOBx3znkdopjP3jJHBb6vRwzwEfAd7qcWnTXmY2i/jk5THAHcnnz0veZgIzgKOIC92zgWt797c653pnln8CfDR5/6PAVWY2CjjIOdeZfO8W59ymfo9fBH5sZnNJDsrq87VHnHOLnXPdwK+A0/v97DnAZODR5M9wDnDo0J4GEcmaKGBuFNBOXHw86zuPNIwXgU8Ax0QBv9HhUJIGKmyl6sqlSoV4FukviA8QkAZj+a0jrGXl3Bo/zBrgX4AjooBfRIHXpe6bk9nOg4EWdu6xNeDryf7b451zhznnfpp8/jWDvHPufuAQM5sC5J1z85Lv3ZMO4oOyjiPeP9d3xrz/4/T/2IBf9Ml4pHPuigE8pog0kCjgN8Q33z6H9t/K0K0h/jd0WBTwX1GgLhmSHipspSbKpYorlyq/Ju5520E80yUNpDDujlrN2G4DImBiFPDvUUC9Zob3yDm3Frgc+EyyV/Y24GNmNhLAzA4yswOI9wG/z8z2Tz4/ps9l/pt4ZvWq5JrrgOfN7OLke1vNbES/hx4NLHfO9QCXAn33yJ5kZm9K9ta+H7iv38/+EXhvkgszG2NmBw/riRCRTIoCNkcB3wQOIe4tusJvIsmQzcQHQx0aBXxT+2gljdTuR+piWlf7aOI7fJcD/V+0Swb1bB3btfnx3xwANpAZxwFdEvg1MC0KWFKla1aFmW1wzo3s8/GNwG+cc1eb2T8Af518aQPwQefcIjP7MPBZ4j2tM51zH0l+djxxy6AJvS2DzOxw4EpgLLAd+HPi5+Mm59yk5OvXAZuACvAp59zIpN3Pl4CVxHts7wE+6Zzr6dvux8zeD/wr8c3M7cBlzrmHavFciUh2dHQygvgE5c8C4z3HkXTaQdze8StRwIu+w4jsjgpbqatpXe37Ew+ilwETPMeRYdr40M0L6Bnx5j1/5+4vQzx7+b0o4JkqxEo1M3svcJFz7lLfWUREADo62Qv4G+JZ3AM9x5F02Eq8wuhbUcDTvsOIDIQKW/FiWld7C/GpsB3Ep8lKBm1ZOG1696pzzhrijz8P/AD4ryhgTfVSpZeZ/QA4H3iXc26h7zwiIn11dNJKvALlc8AbPMcRP14B/hP4QRTQ5TuMyGCosBXvpnW1twP/SNwGpVrLWqUOute/eeGWuT88YpA/9hjxHtrf6NAJEZH06eikhbgt2N8Bb/McR+pjMXEruZ9GARt8hxEZChW2khrTutqPAD4NfBjtw82MjQ/c8QIUDtrDt/UQ9379bhRwbx1iiYhIFXR0Mpl4C9FfAHt7jiPVdydxQXuz5+4DIsOmwlZSZ1pX+xji3mh/j/b6pN7mud+/p2f9sWe+zpc3sHP/7KI6xhIRkSrq6GQ08ansnwAmeY4jw7MeuIZ4ufEC32FEqkWFraTWtK72IvHy5EuBC3h1705JiR0rz35869NfnNznUw64F7ga+G0UsNZPMhERqYWOTk4nnsV9L9DqOY4MzA7iFnW/BG5Qux5pRCpsJROmdbXvB7wP+BBwquc40ofrKWzb9NDtW8FeJC5mr4kClnqOJSIiNdbRyVji7UPvR3tx0+ph4mL2f6OAlb7DiNSSClvJnGld7ROJT1T+c+A4z3Ga3bPAtVue+vIvv33mWTN9hxERET86OjkYuIR4FvcUdBikT88QLzX+ZTO00RPppcJWMm1aV/vhxAXu+1CRWy/PAtcCvwEeKZcq+iUiIiJ/0tHJgUBAXOSeAeT9JmoKS4Cbgf+JAh70HUbEBxW20jCSIvcC4GzgTGAfv4kaxjbgIaAC/AEVsyIiMkAdnYwDLiYuctuBot9EDWMT8bh8G3BrFPC05zwi3qmwlYY0ras9D5xIXOSeDZwG7OU1VHZ0A48DdyVv95dLlU1+I4mISNZ1dDKS+JyMs4ApxPtyVegO3FySQha4LwrY6jmPSKqosJWmMK2rvQU4mZ2F7tvRKcu9HDCHuIitAHeXS5V1fiOJiEij6+hkBPF+3CnJ29vRKcu9HPFe2UeJe83eHgW84DeSSLqpsJWmNK2rfQRwOvGS5WOJe/K9ieY47GI5MB+YB9wPTC+XKqv8RhIRkWbX0UkbcXE7hXhm9zhgvNdQ9bOIeLXUY8nbDLXLExkcFbYiiaTYfTNwTPI2KfnvG33mGoZVxMXr/D7/nV8uVVZ7TSUiIjJAyR7d4/q8vRk4EhjpM9cwbAOWAbOJC9jHgcejgFe8phJpACpsRfZgWlf7PuwseHtndscBByRvvg6p2gSsBFYkb8/Tp4gtlyorPOUSERGpqY5O3gAclbwdBkwgnt3tffM1NncDzwFLiU8q7v/fF6OAHk/ZRBqaCluRYZrW1d7KzkK3b8Hb93NtQIG45UGhz/sG7CAeCHf0eX8b8DI7i9aV/d8vlyob6/IHFBERyZiOTvYiLnD7F7zjiM/YKPb5b//3ez/OAxuB9cC6Pfx3LXFB+3wUsKMef0YReTUVtiIiIiIiIpJpOd8BRERERERERIZDha2IiIiIiIhkmgpbERERERERyTQVtiIiIiIiIpJpKmxFREREREQk01TYioiIiIiISKapsBUREREREZFMU2ErIiIiIiIimabCVkRERERERDJNha2IiIiIiIhkmgpbERERERERyTQVtiIiIiIiIpJpKmxFREREREQk01TYioiIiIiISKapsBUREREREZFMU2ErIiIiIiIimabCVkRERERERDJNha2IiIiIiIhkmgpbERERERERyTQVtiIiIiIiIpJpKmxFREREREQk01TYioiIiIiISKapsBUREREREZFMU2ErIiIiIiIimabCVkRERERERDJNha2IiIiIiIhkmgpbERERERERyTQVtiIiIiIiIpJpKmxFREREREQk01TYioiIiIiISKapsBUREREREZFMU2ErIiIiIiIimabCVkRERERERDJNha2IiIiIiIhkmgpbERERERERyTQVtiIiIiIiIpJpKmxFREREREQk01TYioiIiIiISKapsBUREREREZFMU2ErIiIiIiIimabCVkRERERERDJNha2IiIiIiIhkmgpbERERERERyTQVtiIiIiIiIpJpKmxFREREREQk01TYioiIiIiISKapsBUREREREZFMU2ErIiIiIiIimabCVkRERERERDJNha2IiIiIiIhkmgpbERERERERyTQVtiIiIiIiIpJpKmxFREREREQk0/4//wVfjV72NXYAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 1152x576 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAcIAAAHICAYAAADdg+ojAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzt3Xl4VNXh//H3mQQCKLIzIIuAEkhkFXFBUKatVm1tTW0Vr0u1Vmu1i6hdnX6rNdraqmnVWq1UWxeslQputa3tL+JWZZOdACL7MiyyZ8+c3x8zwYAsWWbmzMz9vJ4nj2RmcudD5Mkn59x7zzHWWkRERPwq4DqAiIiISypCERHxNRWhiIj4mopQRER8TUUoIiK+piIUERFfUxGKiIivqQhFRMTXVIQiIuJrKkIREfE1FaGIiPiailBERHxNRSgiIr6mIhQREV/LdR1ARCSTzJ49u3tubu4kYAgaTKSDKLCwtrb2m6NGjdrcnAOoCEVEmiA3N3dSjx49Crp167Y9EAhoQ1fHotGo2bJlS+GmTZsmAV9qzjH024yISNMM6dat2y6VYHoIBAK2W7duO4mN0Jt3jATmERHxg4BKML3E/380u89UhCIi4ms6Rygi0gLhSGhUIo9XHCyd3ZjXrVmzJveGG27oO2/evHatW7e2vXv3rnrwwQfXDhs2rCqReZpq69atOZMmTer84x//eMvhXrd06dLWX/ziFwcuX7580YHPnXLKKYPuvffetWeeeWZ58pJ+QiNCEZEME41G+dKXvnTCmWeeuXvt2rULV6xYseiXv/zl+g0bNrRynW3btm05f/rTn7q7ztEUKkIRkQzzyiuvtM/NzbU//OEP9426xowZU3HOOefs+da3vtV74MCBJ+bn5xc+9thjnepfP3r06EHnn3/+gH79+g254YYbev3hD3/oPHTo0IL8/PzCRYsW5QFcdNFF/TzP6ztq1KhB/fr1G/Lss892ACgvLzdf/epX++Xn5xcWFBQUvvzyy+0BZs2a1Wbo0KEFgwcPLszPzy9csGBB3i233NJ77dq1eYMHDy781re+1Xvnzp2B008/Pb+wsLAgPz+/8Omnn+5Yn7m2tpavfOUr/fLz8wvPPffcAbt37/5UJ73wwgvHjBgxYnBhYWHBeeedN2Dnzp0J7y0VoYhIhpk/f37b4cOHf2ra8Mknn+y4YMGCtkuWLFn03//+d9n//d//9V69enUrgLKysrZ/+MMf1i5ZsmTRlClTuixbtqzNggULllxxxRVb77vvvn0juLVr1+bNmDFj6csvv7z8pptuOq68vNzcc8893QGWLVu2ePLkyR9dd911/crLy82DDz7Y7YYbboiUlZUtnj9//pL+/ftX33fffev69OlTVVZWtvjRRx9d165du+irr7764eLFi5dMnz592U9/+tPe0WgUgFWrVrW5/vrrtyxbtmxx+/bto7/5zW+6Nfz7bNy4Mffuu+/u+eabby5bvHjxkpNOOqn8zjvvDCb6+6lzhCIiWeKtt95qf/HFF3+cm5tLnz59ak899dQ9b7/9drsOHTpEhw4duve4446rAejbt2/VeeedtxNg+PDhFdOnT29ff4yLLrro45ycHIYOHVrVp0+fqrlz57Z59913j/7ud7+7GWDkyJGVxx57bPWCBQvanH766XvvvffenuvWrWs9YcKE7UOHDv3U+cloNGpuuumm3u+9997RgUCAzZs3t163bl0uQI8eParPOeecvQBXXHHFtgceeKA7EKn/2jfeeOOoFStWtDnllFMGA9TU1JhRo0btSfT3TUUoIpJhhg4dWjFt2rROBz5u7aHv6sjLy9v3ZCAQoE2bNrb+z3V1dab+OWPMfl9njDnkca+//vqPx40bt3fq1KkdzjvvvPyHH3541aBBg/Yrw0cffbTztm3bchcsWLAkLy/P9urVa2hFRUXgUO914N9n7Nixu15++eWVh/yLJYCmRkVEMswFF1ywu7q62tx3331d6x+bPn16u06dOtVOmTKlc21tLRs2bMidMWPG0ePGjdvblGO/8MILnerq6li0aFHe2rVr84YPH145duzYPU8//XRngPnz5+dt3Lix9bBhwyoXL17cuqCgoCocDm8+55xzdsydO7dthw4d6vbu3buvW3bu3JnTtWvXmry8PPvyyy+337BhQ+v65zZu3Nj6P//5z1EAkydP7jxmzJj9Rnvjx4/fO2vWrKMXLlyYB7B79+7A/Pnz85r3XTs0jQhFRFqgsbc7JFIgEOCll15accMNN/T57W9/2yMvL2/f7RN79uzJKSgoONEYY++44451ffv2rZ0/f36jj33CCSdUnXLKKYO2bdvW6re//e3qdu3a2R/+8Iebr7jiiuPy8/MLc3JyePTRR1e1bdvWPvXUU52ff/75Lrm5ubZbt241v/zlLzcEg8G6UaNG7Rk4cOCJn/nMZ3befvvtm84777wThgwZUnDiiSeW9+/fv7L+vQYMGFD5+OOPd7nhhhuO69+/f9Wtt9663y0Xxx57bO2jjz66asKECQOqq6sNwM9//vP1ib5FxBxuKC0iIvubN2/equHDh291nSMZLrroon5f/OIXd1599dXbXWdpqnnz5nUdPnx4v+Z8raZGRUTE1zQ1KiIiAPz9739f5TqDCxoRioiIr6kIRUTE11SEIiLiaypCERHxNV0sIyLSAhOnktBtmEqKOOJ9iTk5OaMGDhxYUVdXZ/r06VP1t7/9bWXXrl3rEpnjQIfbNqneK6+80v6+++4LlpaWfnjgc7169Ro6a9asJT179qxNZs7m0IhQRCTD5OXlRcvKyhYvX758UceOHWsPXKxamkZFKCKSwU477bS969ev37ds2c9+9rPgkCFDCvLz8wsnTpx4bP3jDz30UJf8/PzCQYMGFV544YX9t2/fHujVq9fQqqoqA/Dxxx/v+3zhwoV5Y8aMyR80aFBhYWFhQf02TfWWLl3aetSoUYMKCwsLCgsLC15//fWj6p/bvXt3ztlnn3388ccff6LneX3r6j49UH344Yc712/f5HnecbW1bgeJKkIRkQxVW1tLaWlp+wsvvHAHxPbu+/DDD9vMnz9/yZIlSxbPnTu33WuvvXb0rFmz2tx77709p0+fvmzp0qWLH3300TWdOnWKnn766bv/9re/dQB4/PHHO59//vnb8/LyrOd5/a+//vrNS5cuXTxr1qyyvn371jR832OPPbb2rbfeWrZ48eIlzz333EcTJ07sW//cggULjvrd7363dunSpYtWrVqV9+STT+63OPicOXPaTJkypfOsWbPKysrKFgcCAfvII490ScX361B0jlBEJMNUVVUFBg8eXLh+/frWQ4YMKb/wwgt3Afzzn/885s033zymsLCwEKC8vDxQVlbWZs6cOYELLrhge/35uWAwWAdw3XXXbbnnnnt6XHHFFTuefvrpro899tiq7du3ByKRSOsrr7xyB0C7du0ssN9anNXV1eaaa645bvHixW0DgQCrV6/eN2IcOnTo3sLCwmqAiy+++OO33nrr6IZLtv3zn/9sv3DhwnbDhw8vAKisrAx0797d6ZBQI0IRkQxTf45w1apVC6qr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\n",
      "text/plain": [
       "<Figure size 540x576 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Science communication - putting data into graphs.\n",
    "# Pie charts are often used to express different values as percentages of a whole.\n",
    "\n",
    "# Creating a pie plot <https://python-graph-gallery.com/140-basic-pieplot-with-panda/>\n",
    "\n",
    "\n",
    "contaminationCost = [[8.0, 2.0, 6.0], \n",
    "                 [1.0, 7.0, 2.0], \n",
    "                 [1.0, 1.0, 2.0],\n",
    "                [20.0, 30.0, 80.0],\n",
    "                    [8, 0, 32]] \n",
    "# library\n",
    "import pandas as pd\n",
    " \n",
    "# --- dataset 1: just 4 values for 4 groups:\n",
    "dfCompost = pd.DataFrame([8,1,1], index=['a', 'b', 'c'], columns=['x'])\n",
    " \n",
    "# make the plot\n",
    "#dfCompost.plot(kind='pie', subplots=True, figsize=(8, 8))\n",
    "\n",
    "# --- dataset 2: 3 columns and rownames\n",
    "#dfContamination = pd.DataFrame({'Compost':[8,1,1], 'Recycling':[7,1,3], 'Landfill':[6,2,2]}, index=['Compostable', 'Recyclable', 'Landfill Only'] )\n",
    "\n",
    "# make the multiple plot\n",
    "#dfContamination.plot(kind='pie', subplots=True, figsize=(24,8))\n",
    "\n",
    "\n",
    "dfCompostRecycling = pd.DataFrame({'Compost':[8,1,1], 'Recycling':[2,7,1]}, index=['Compostable', 'Recyclable', 'Landfill Only'])\n",
    "comrecPlot = dfCompostRecycling.plot(kind='pie', subplots=True, figsize=(16,8), colors=['#7be840', '#70aeff', '#a5a5a5'])\n",
    "\n",
    "dfLandfill = pd.DataFrame({'Landfill':[6,2,2]}, index=['Compostable', 'Recyclable', 'Landfill Only'])\n",
    "landPlot = dfLandfill.plot(kind='pie', subplots=True, figsize=(7.5,8), colors=['#7be840', '#70aeff', '#a5a5a5'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Pie charts are sometimes a misleading way to present data because humans cannot easily see the quantity in each section. \n",
    "\n",
    "#### Instead, data analysts prefer barplots, which present data along an axis to clearly display values.\n",
    " * Because our contamination data are best represented as percentages, we create something called a \"Stacked Percent Barplot\".\n",
    " * If we wanted to instead compare the quantities in each stream, we would create a stacked barplot with a metric such as kg along the y-axis."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Stacked Percent Barplot"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAe8AAAEKCAYAAAA7AN38AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzt3Xl8VOXZ//HPlQkEIsguIGETwxqkSERFqEtbKj5CQW1FKgrVUmqtRXGrbd3qU0Ww+qCPCnW34oKCCtZaq4gLv6pBISxhVQRkX2QLJCS5fn/MCU+AJAwkk8mB7/v1youZ+5w558ockm/OOffct7k7IiIiEh5JiS5AREREDo/CW0REJGQU3iIiIiGj8BYREQkZhbeIiEjIKLxFRERCRuEtIiISMgpvERGRkFF4i4iIhExyoguoiMaNG3ubNm0SXYaISKjMnj17k7s3SXQdcuRCHd5t2rQhKysr0WWIiISKmX2T6BqkYnTZXEREJGQU3iIiIiGj8BYREQmZUN/zFhGRyjF79uwTkpOTnwAy0IldohUB8wsKCq7u0aPHhtJWUHiLiAjJyclPNGvWrFOTJk22JiUleaLrOZYVFRXZxo0bO69bt+4JYEBp68Ttrysze8rMNpjZ/BJtDc3sXTNbGvzbIGg3MxtvZsvMLNvMTo1XXSIiUqqMJk2abFdwJ15SUpI3adJkG9GrIKWvE8f9PwOcf0DbrcB77p4OvBc8B+gHpAdfI4DH4liXiIgcLEnBXX0Ex6LMjI5beLv7h8CWA5p/AjwbPH4WGFii/TmP+g9Q38yax6s2ERGRMKvqTglN3X0tQPDvCUF7C2BVifVWB20iIpIAez2vG9Cjsr6C7ZVr5cqVyRdeeOFJLVu2zGjXrl2Xs88+++Ts7OyUSv/mDtOmTZsi99133yFHpFu8eHHN9PT0LqUt69mzZ4cPP/wwtbJqqi4d1qyUtlIv35jZCKKX1mnVqtUR77CwsJBIJHLEr5fYVfS91rGqOjpW4RHv97qGpST/cf25lba9e5rOKDdvioqKGDBgwMlDhgzZPH369K8AZs2aVXvNmjU1TjnllLxKK+QIbN68OfLkk0+ecOutt25MZB0lVXV4rzez5u6+NrgsXtwFfjXQssR6acCa0jbg7hOBiQCZmZlHfH8mEokwadKkI325HIYhQ4ZU6PU6VlVHxyo8Knqsqpvp06fXTU5O9ptvvnlfQPbq1Wt3UVERv/rVr9Lef//9embmN91009pf/vKXW6dPn173rrvuOrFJkyZ7Fy5cmHrBBRds7dq16+5HH320aV5enk2dOnV5ly5d8i6++OI2KSkpRYsXL669efPmGvfee++qyy67bFtubq5dccUVrbOzs1MjkQj333//qv79++/IysqqNXz48LZ79+61oqIiXnvtteW///3vW6xatSqlY8eOnc8+++zt999//5rzzz//5G3btkUKCgrs9ttvX3P55Zd/B1BQUMBFF13UZv78+aknnXTSnsmTJ6+oW7duUcnvdcqUKcfffffdJ+bn51vr1q3zXnrppRX16tUrOvA9KU9VXzZ/E7gyeHwl8EaJ9iuCXudnANuKL6+LiMjRLzs7u3a3bt1yD2x/7rnn6s+bN692Tk7Ogvfee2/J7bffnvbNN9/UAFi0aFHtxx57bFVOTs6CV199tdGSJUtqzZs3L2fo0KGbHnjggeLbsqxatSrls88+Wzxt2rSlo0aNap2bm2tjxow5AWDJkiULJ02a9NWIESPa5Obm2sMPP9zkmmuuWb9o0aKF2dnZOW3bts1/4IEHVrds2TJv0aJFCydMmLA6NTW16K233lq2cOHCnJkzZy657bbb0oqKotm7YsWKWiNHjty4ZMmShXXr1i0aO3bsfpfb165dm/yXv/yl+Ycffrhk4cKFOaeeemrun//856aH+37F7czbzF4EzgEam9lq4A7gPuAVM7sKWAn8NFj9H8AFwDIgFxger7pERCQ8Pvroo7o/+9nPtiQnJ9OyZcuC008/fefHH3+cWq9evaKuXbvuat269V6AVq1a5fXr128bQLdu3XbPnDmzbvE2Lr744i2RSISuXbvmtWzZMm/OnDm1Zs2aVee3v/3tBoDu3bvvOfHEE/PnzZtX68wzz9w1bty45qtXr645ePDgrV27dj3okn1RUZGNGjUq7T//+U+dpKQkNmzYUHP16tXJAM2aNcvv27fvLoChQ4duHj9+/AnA+uLXfvDBB8ctX768Vs+ePTsC7N2713r06LHzcN+XuIW3u19WxqIflLKuA7+JVy0iIlK9de3adffrr7/e4MD2aDyULiUlZd/CpKQkatWq5cWPCwsL9/WlMtu/W5WZlbndkSNHbunTp8+uqVOn1uvXr1/7Rx99dEWHDh32C/AJEyY03Lx5c/K8efNyUlJSvEWLFl13796dVNa+Dvx+evfuvX3atGlfl/mNxUBD4ImISML1799/R35+vj3wwAONi9tmzpyZ2qBBg4JXX321YUFBAWvWrEn+7LPP6vTp02fX4Wx7ypQpDQoLC1mwYEHKqlWrUrp167and+/eO//+9783BMjOzk5Zu3ZtzVNOOWXPwoULa3bq1Cnvj3/844a+fft+N2fOnNr16tUr3LVr17683LZtW6Rx48Z7U1JSfNq0aXXXrFlTs3jZ2rVra/773/8+DmDSpEkNe/Xqtd9Z9TnnnLMrKyurzvz581MAduzYkXQkPeqrS29zERGpRvZ6XsGheogf7vZqWNkZlZSUxJtvvrn8mmuuafnQQw81S0lJ8bS0tLyHH3541c6dOyOdOnXqYmZ+1113rW7VqlVBdnZ2zPs++eST83r27Nlh8+bNNR566KFvUlNT/eabb94wdOjQ1u3bt+8ciUSYMGHCitq1a/vzzz/fcPLkyY2Sk5O9SZMme++99941TZs2LezRo8fO9PT0Luedd962O++8c12/fv1OzsjI6NSlS5fctm3b7ine10knnbTnqaeeanTNNde0btu2bd6NN964Xw/1E088sWDChAkrBg8efFJ+fr4B3HHHHd8ebo96K++SRHWXmZnpWVlZR/x69YqtGpXRK1bHqmroWIVHRY6Vmc1298ySbXPnzl3RrVu3TRUurJq5+OKL21x44YXbhg8fvjXRtRyuuXPnNu7WrVub0pbpsrmIiEjI6LK5iIgctV577bUVia4hHnTmLSIiEjIKbxERkZBReIuIiISMwltERCRk1GFNREQOsreQbjUilZcRewspqBFhbnnrRCKRHunp6bsLCwutZcuWea+88srXjRs3LqysGmL52FjPnj07jBs3btX3v//9/cZZHz9+fKOsrKzjnnvuuZWVVU9FKLxFROQgNSIkXz+18rb34KBD501KSkrRokWLFgJcdNFFbcaOHdtkzJgx6yqviqOHLpuLiEi1c8YZZ+z69ttv9w07+qc//alpRkZGp/bt23e+/vrrTyxuf+SRRxq1b9++c4cOHToPHDiw7datW5NatGjRNS8vzwC2bNmy3/NiN954Y/OMjIxO6enpXS677LLWxbOCATzzzDONunfv3jE9Pb3LjBkzUg+sbc2aNck//vGP22VkZHTKyMjo9K9//eu4uLwJ5VB4i4hItVJQUMCMGTPqDhw48DuIzn+9bNmyWtnZ2Tk5OTkL58yZk/r222/XycrKqjVu3LjmM2fOXLJ48eKFEyZMWNmgQYOiM888c8crr7xSD+Cpp55qeMEFF2wtOYkJwE033bRh/vz5OUuXLl2we/fupJdeeqle8bLc3NykL7/8ctH48eO/GTFiRNsD6/vVr37V8oYbblg/f/78nKlTpy4fOXJkmzi/JQfRZXMREakW8vLykjp27Nj522+/rZmRkZE7cODA7QD//Oc/j//www+P79y5c2eIhuuiRYtqffHFF0n9+/ff2rx58wKApk2bFgKMGDFi45gxY5oNHTr0u7///e+N//a3v604cF9vv/123b/+9a/N9uzZk/Tdd98ld+7ceTewDWDIkCFbAPr167dz586dSZs2bYqUfO0nn3xy/NKlS2sXP9+5c2dk69atSQ0aNCiiiujMW0REqoXie94rVqyYl5+fb/fdd98JEJ1Gc9SoUWsXLVq0cNGiRQtXrlw5//rrr9/k7pjZQRN09O3bd9fq1atT3nrrrTqFhYV22mmn7Sm5PDc310aPHt16ypQpy5csWbLw8ssv37Rnz559eRjLtJ5ZWVk5xfVs2LAhuyqDG47hM++CgsJKmYRBDq2goJDk5MihVyzn9TpWVaOix0qkMjRq1Khw/PjxKy+55JKTb7rppo39+vXbfuedd544YsSILfXq1Sv6+uuva9SsWdPPP//87ZdccsnJt9122/pmzZoVrl+/PlJ89j148ODNw4cPP2n06NFrD9x+bm5uEkCzZs0Ktm3bljRt2rQG/fv339cD/cUXX2zQv3//He+8806dunXrFjZq1Gi/Hu+9e/fePmbMmBP+/Oc/rweYNWtW7V69eu2O77uyv2M2vJOTI1RmT0op24ODKhYGOlZVp6LHSo4eewspiKWH+OFsr8Zh/Pc666yzdnfq1Gn3E0880eA3v/nNlgULFtQ67bTTOgKkpqYWvfDCC19nZmbuGT169No+ffp0TEpK8oyMjNziscyvuuqqzWPGjGlx1VVXbTlw240bNy78+c9/vrFz585d0tLS8rt167bf/OANGjQo7N69e8edO3dGJk6c+PWBr584ceKqq6++ulX79u07FxYW2umnn76jV69eVfoRsmN6SlAFQtV4cFDFt6FjVTUq41hpStCq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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "# Science communication - putting data into graphs.\n",
    "# Percent stacked barplot is something used to visually compare quantities next to each other, easier to read than a table\n",
    "\n",
    "#Source for a stacked percent barplot: <https://python-graph-gallery.com/13-percent-stacked-barplot/>\n",
    "\n",
    "# libraries\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from matplotlib import rc\n",
    "import pandas as pd\n",
    " \n",
    "# Data\n",
    "r = [0,1,2]\n",
    "raw_data = {'greenBars': [8.0, 2.0, 6.0], 'blueBars': [1.0, 7.0, 2.0],'greyBars':  [1.0, 1.0, 2.0]} #same data as above\n",
    "barplot_df = pd.DataFrame(raw_data)\n",
    "\n",
    "# From raw value to percentage\n",
    "totals = [i+j+k for i,j,k in zip(barplot_df['greenBars'], barplot_df['blueBars'], barplot_df['greyBars'])]\n",
    "greenBars = [i / j * 100 for i,j in zip(barplot_df['greenBars'], totals)]\n",
    "blueBars = [i / j * 100 for i,j in zip(barplot_df['blueBars'], totals)]\n",
    "greyBars = [i / j * 100 for i,j in zip(barplot_df['greyBars'], totals)]\n",
    " \n",
    "# plot\n",
    "barWidth = 0.85\n",
    "names = ('Compost','Recycling','Landfill')\n",
    "\n",
    "# Create green Bars\n",
    "plt.bar(r, greenBars, color=\"#7be840\", edgecolor='white', width=barWidth, label=\"Compostable\")\n",
    "# Create blue Bars\n",
    "plt.bar(r, blueBars, bottom=greenBars, color=\"#70aeff\", edgecolor='white', width=barWidth, label=\"Recylable\")\n",
    "# Create grey Bars\n",
    "plt.bar(r, greyBars, bottom=[i+j for i,j in zip(greenBars, blueBars)], color=\"#a5a5a5\", edgecolor='white', width=barWidth, label=\"Landfill Only\")\n",
    " \n",
    "# Custom x axis\n",
    "plt.xticks(r, names)\n",
    "plt.xlabel(\"Stream\")\n",
    "\n",
    "# Custom y axis\n",
    "plt.ylabel(\"% Contamination\")\n",
    " \n",
    "# Add a legend\n",
    "plt.legend(loc='upper left', bbox_to_anchor=(1,1), ncol=1)\n",
    " \n",
    "# Show graphic\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This barplot shows all streams in one chart, compared to the three pie charts needed above.\n",
    "<br> More importantly, now each stream's percent contamination can be compared more easily!"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Waste Disposal Costs\n",
    "> Waste disposal and collection costs money. \n",
    "<br>In Squamish, the municipal government uses taxes to collect waste from your homes.\n",
    "<br> However, businesses must pay for their own waste collection. \n",
    "\n",
    ">Often, payment is calculated using \"Tip Fees\" which are different depending on the waste stream being collected, or \"tipped\".\n",
    "<br> In Squamish, Tip Fees for different waste streams are:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Compost Tip Fee</th>\n",
       "      <th>Recycling Tip Fee</th>\n",
       "      <th>Landfill Tip Fee</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>$ / 100 kg</th>\n",
       "      <td>$8.00</td>\n",
       "      <td>$0 (free!)</td>\n",
       "      <td>$15.00 if no more than 20% contaminated</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>$32.00 if more than 20% contaminated</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           Compost Tip Fee Recycling Tip Fee  \\\n",
       "$ / 100 kg           $8.00        $0 (free!)   \n",
       "                                               \n",
       "\n",
       "                                   Landfill Tip Fee  \n",
       "$ / 100 kg  $15.00 if no more than 20% contaminated  \n",
       "               $32.00 if more than 20% contaminated  "
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import pandas as pd\n",
    "\n",
    "types = ['Compost Tip Fee', 'Recycling Tip Fee', 'Landfill Tip Fee']\n",
    "fees = [[\"$8.00\", \"$0 (free!)\", \"$15.00 if no more than 20% contaminated\"],\n",
    "       [\"\",\"\", \"$32.00 if more than 20% contaminated\"]]\n",
    "rowsFees = [\"$ / 100 kg\",\"\"]\n",
    "\n",
    "tipFees = pd.DataFrame(data = fees, index = rowsFees, columns = types)\n",
    "display(tipFees)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Total Costs\n",
    "\n",
    "> Let's say that each stream contains 100 kg of each type of waste. <br>\n",
    "> As above, the % Contamination is highlighted yellow, and the Cost is highlighted orange."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style  type=\"text/css\" >\n",
       "    #T_35a5e262_2908_11e9_9672_dba807aeee37row0_col0 {\n",
       "            background-color:  #7be840;\n",
       "        }    #T_35a5e262_2908_11e9_9672_dba807aeee37row1_col1 {\n",
       "            background-color:  #70aeff;\n",
       "        }    #T_35a5e262_2908_11e9_9672_dba807aeee37row2_col2 {\n",
       "            background-color:  #a5a5a5;\n",
       "        }    #T_35a5e262_2908_11e9_9672_dba807aeee37row3_col0 {\n",
       "            background-color:  #fcff66;\n",
       "        }    #T_35a5e262_2908_11e9_9672_dba807aeee37row3_col1 {\n",
       "            background-color:  #fcff66;\n",
       "        }    #T_35a5e262_2908_11e9_9672_dba807aeee37row3_col2 {\n",
       "            background-color:  #fcff66;\n",
       "        }    #T_35a5e262_2908_11e9_9672_dba807aeee37row4_col0 {\n",
       "            background-color:  #ffa449;\n",
       "        }    #T_35a5e262_2908_11e9_9672_dba807aeee37row4_col1 {\n",
       "            background-color:  #ffa449;\n",
       "        }    #T_35a5e262_2908_11e9_9672_dba807aeee37row4_col2 {\n",
       "            background-color:  #ffa449;\n",
       "        }</style>  \n",
       "<table id=\"T_35a5e262_2908_11e9_9672_dba807aeee37\" > \n",
       "<thead>    <tr> \n",
       "        <th class=\"blank level0\" ></th> \n",
       "        <th class=\"col_heading level0 col0\" >Compost</th> \n",
       "        <th class=\"col_heading level0 col1\" >Recycling</th> \n",
       "        <th class=\"col_heading level0 col2\" >Landfill</th> \n",
       "    </tr></thead> \n",
       "<tbody>    <tr> \n",
       "        <th id=\"T_35a5e262_2908_11e9_9672_dba807aeee37level0_row0\" class=\"row_heading level0 row0\" >Compost</th> \n",
       "        <td id=\"T_35a5e262_2908_11e9_9672_dba807aeee37row0_col0\" class=\"data row0 col0\" >8</td> \n",
       "        <td id=\"T_35a5e262_2908_11e9_9672_dba807aeee37row0_col1\" class=\"data row0 col1\" >2</td> \n",
       "        <td id=\"T_35a5e262_2908_11e9_9672_dba807aeee37row0_col2\" class=\"data row0 col2\" >6</td> \n",
       "    </tr>    <tr> \n",
       "        <th id=\"T_35a5e262_2908_11e9_9672_dba807aeee37level0_row1\" class=\"row_heading level0 row1\" >Recycling</th> \n",
       "        <td id=\"T_35a5e262_2908_11e9_9672_dba807aeee37row1_col0\" class=\"data row1 col0\" >1</td> \n",
       "        <td id=\"T_35a5e262_2908_11e9_9672_dba807aeee37row1_col1\" class=\"data row1 col1\" >7</td> \n",
       "        <td id=\"T_35a5e262_2908_11e9_9672_dba807aeee37row1_col2\" class=\"data row1 col2\" >2</td> \n",
       "    </tr>    <tr> \n",
       "        <th id=\"T_35a5e262_2908_11e9_9672_dba807aeee37level0_row2\" class=\"row_heading level0 row2\" >Landfill</th> \n",
       "        <td id=\"T_35a5e262_2908_11e9_9672_dba807aeee37row2_col0\" class=\"data row2 col0\" >1</td> \n",
       "        <td id=\"T_35a5e262_2908_11e9_9672_dba807aeee37row2_col1\" class=\"data row2 col1\" >1</td> \n",
       "        <td id=\"T_35a5e262_2908_11e9_9672_dba807aeee37row2_col2\" class=\"data row2 col2\" >2</td> \n",
       "    </tr>    <tr> \n",
       "        <th id=\"T_35a5e262_2908_11e9_9672_dba807aeee37level0_row3\" class=\"row_heading level0 row3\" >% Contamination</th> \n",
       "        <td id=\"T_35a5e262_2908_11e9_9672_dba807aeee37row3_col0\" class=\"data row3 col0\" >20%</td> \n",
       "        <td id=\"T_35a5e262_2908_11e9_9672_dba807aeee37row3_col1\" class=\"data row3 col1\" >30%</td> \n",
       "        <td id=\"T_35a5e262_2908_11e9_9672_dba807aeee37row3_col2\" class=\"data row3 col2\" >80%</td> \n",
       "    </tr>    <tr> \n",
       "        <th id=\"T_35a5e262_2908_11e9_9672_dba807aeee37level0_row4\" class=\"row_heading level0 row4\" >Cost ($)</th> \n",
       "        <td id=\"T_35a5e262_2908_11e9_9672_dba807aeee37row4_col0\" class=\"data row4 col0\" >8</td> \n",
       "        <td id=\"T_35a5e262_2908_11e9_9672_dba807aeee37row4_col1\" class=\"data row4 col1\" >0</td> \n",
       "        <td id=\"T_35a5e262_2908_11e9_9672_dba807aeee37row4_col2\" class=\"data row4 col2\" >32</td> \n",
       "    </tr></tbody> \n",
       "</table> "
      ],
      "text/plain": [
       "<pandas.io.formats.style.Styler at 0x7f5179a382b0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "streams = ['Compost', 'Recycling', 'Landfill']\n",
    "contaminationCost = [[8.0, 2.0, 6.0], \n",
    "                 [1.0, 7.0, 2.0], \n",
    "                 [1.0, 1.0, 2.0],\n",
    "                [20.0, 30.0, 80.0],\n",
    "                    [8, 0, 32]] \n",
    "rowsCost = [\"Compost\" , \"Recycling\", \"Landfill\", \"% Contamination\", \"Cost ($)\"]\n",
    "\n",
    "conTableCost = pd.DataFrame(data = contaminationCost, columns = streams , index = rowsCost)\n",
    "conTableCost.set_value(\"% Contamination\", \"Compost\", 0.2)\n",
    "conTableCost.set_value(\"% Contamination\", \"Recycling\", 0.3)\n",
    "conTableCost.set_value(\"% Contamination\", \"Landfill\", 0.8)\n",
    "\n",
    "display(conTableCost.style.applymap(colour_green, subset=(\"Compost\",\"Compost\"))\\\n",
    "                            .applymap(colour_blue, subset=(\"Recycling\", \"Recycling\"))\\\n",
    "                            .applymap(colour_grey, subset=(\"Landfill\", \"Landfill\"))\\\n",
    "                            .applymap(colour_yellow, subset=(\"% Contamination\",\"Compost\"))\\\n",
    "                            .applymap(colour_yellow, subset=(\"% Contamination\", \"Recycling\"))\\\n",
    "                            .applymap(colour_yellow, subset=(\"% Contamination\", \"Landfill\"))\\\n",
    "                            .applymap(colour_orange, subset=(\"Cost ($)\",\"Compost\"))\\\n",
    "                            .applymap(colour_orange, subset=(\"Cost ($)\", \"Recycling\"))\\\n",
    "                            .applymap(colour_orange, subset=(\"Cost ($)\", \"Landfill\"))\\\n",
    "                            .format(\"{:.0%}\", subset = (\"% Contamination\",(\"Compost\", \"Recycling\", \"Landfill\"))))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Higher Tip Fees for Contamination\n",
    "> To encourage businesses to reduce and sort their waste, Squamish requires them <br> to pay a higher Tip Fee if their Landfill waste is contaminated.\n",
    "\n",
    "> In the table below, change values in the Landfill stream to bring contamination **below 20%**. <br> What happens to the Cost?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "6d79f12ff0524278821d7c650bcbfb8f",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "QgridWidget(grid_options={'fullWidthRows': True, 'syncColumnCellResize': True, 'forceFitColumns': True, 'defau…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Your total waste management cost is: $ 40.0\n"
     ]
    }
   ],
   "source": [
    "## import warnings\n",
    "warnings.filterwarnings(\"ignore\")\n",
    "\n",
    "\n",
    "df2 = pd.DataFrame(data = contaminationCost, columns=streams, index = rowsCost)\n",
    "\n",
    "def handler2(event, qgrid_widgetCost):\n",
    "    df2 = qgrid_widgetCost.get_changed_df()\n",
    "    \n",
    "    # Updating the Compost column\n",
    "    compostPercent2 = round((df2[\"Compost\"][\"Recycling\"]+df2[\"Compost\"][\"Landfill\"])/(df2[\"Compost\"][\"Compost\"]+df2[\"Compost\"][\"Recycling\"]+df2[\"Compost\"][\"Landfill\"])*100, 0)\n",
    "    df2.set_value(\"% Contamination\", \"Compost\", compostPercent2)\n",
    "    \n",
    "    compostCost = 8\n",
    "    df2.set_value(\"Cost ($)\", \"Compost\", round(compostCost, 2))\n",
    "    \n",
    "    # Updating the Recycling column\n",
    "    recyclingPercent2 = round((df2[\"Recycling\"][\"Compost\"]+df2[\"Recycling\"][\"Landfill\"])/(df2[\"Recycling\"][\"Compost\"]+df2[\"Recycling\"][\"Recycling\"]+df2[\"Recycling\"][\"Landfill\"])*100, 0)\n",
    "    df2.set_value(\"% Contamination\", \"Recycling\", recyclingPercent2)\n",
    "    \n",
    "    recyclingCost = 0\n",
    "    df2.set_value(\"Cost ($)\", \"Recycling\", recyclingCost)\n",
    "    \n",
    "    # Updating the Landfill column\n",
    "    landfillPercent2 = round((df2[\"Landfill\"][\"Compost\"]+df2[\"Landfill\"][\"Recycling\"])/(df2[\"Landfill\"][\"Compost\"]+df2[\"Landfill\"][\"Recycling\"]+df2[\"Landfill\"][\"Landfill\"])*100, 0)\n",
    "    df2.set_value(\"% Contamination\", \"Landfill\", landfillPercent2)\n",
    "    \n",
    "    if landfillPercent2 > 20:\n",
    "        landfillCost = 32.00\n",
    "        df2.set_value(\"Cost ($)\", \"Landfill\", round(landfillCost, 2))\n",
    "    else:\n",
    "        landfillCost = 15\n",
    "        df2.set_value(\"Cost ($)\", \"Landfill\", round(landfillCost, 2))\n",
    "      \n",
    "    #Update and display the grid\n",
    "    qgrid_widgetCost = qgrid.show_grid(df2)\n",
    "    clear_output()\n",
    "    qgrid_widgetCost.on(names = 'cell_edited', handler = handler2)\n",
    "    display(qgrid_widgetCost)\n",
    "    totalCost = df2.get_value(\"Cost ($)\",\"Compost\") + df2.get_value(\"Cost ($)\",\"Recycling\") + df2.get_value(\"Cost ($)\",\"Landfill\")\n",
    "    print (\"Your total waste management cost is: $\", totalCost)\n",
    "\n",
    "qgrid_widgetCost = qgrid.show_grid(df2)\n",
    "qgrid_widgetCost.on(names = 'cell_edited', handler = handler2)\n",
    "display(qgrid_widgetCost)\n",
    "\n",
    "totalCost = df2.get_value(\"Cost ($)\",\"Compost\") + df2.get_value(\"Cost ($)\",\"Recycling\") + df2.get_value(\"Cost ($)\",\"Landfill\")\n",
    "print (\"Your total waste management cost is: $\", totalCost)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Waste Reduction, or Decontamination?\n",
    "\n",
    "> For the environment, waste reduction is always a top priority. But some businesses must continue producing waste to stay _in_ business! So, what should they try to do?\n",
    "\n",
    "> Think about the different weights and costs: \n",
    "* If 100kg of contaminated Landfill waste costs \\$32,\n",
    "<br> **How much would it cost to throw out 50kg of Landfill waste?**\n",
    "\n",
    "> _Click the button below to show the answer._"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "8e98dfdfd0d242419a898200193e790f",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Button(button_style='info', description='Show', style=ButtonStyle(), tooltip='Click me')"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#Create a button to show the table with the answer.\n",
    "\n",
    "#Tools\n",
    "import ipywidgets as widgets\n",
    "from IPython.display import clear_output\n",
    "\n",
    "#Make the button\n",
    "showAnswer_button= widgets.Button(\n",
    "    description='Show',\n",
    "    disabled=False,\n",
    "    button_style='info', # 'success' (green), 'info' (blue), 'warning' (orange), 'danger' (red) or '' (white)\n",
    "    tooltip='Click me',\n",
    "    icon=''\n",
    ")\n",
    "\n",
    "#Make the table that shows the answer.\n",
    "weight = [[\"100kg ( >20% contaminated)\", \"$32\"], \n",
    "             [\"50kg ( >20% contaminated)\", \"$16\"],\n",
    "             [\"100kg ( <20% contaminated)\",\"$15\"]]\n",
    "colname = [\" \",\"  \", \"   \"]\n",
    "rowname = [\"Weight\", \"Cost\"]\n",
    "\n",
    "zeroWaste = pd.DataFrame(data = weight, columns = rowname, index = colname)\n",
    "\n",
    "\n",
    "#Define the button's function\n",
    "def showAnswer(w):\n",
    "    clear_output()\n",
    "    display(showAnswer_button)\n",
    "    display(zeroWaste.style.applymap(colour_orange, subset=(\" \", \"Cost\"))\\\n",
    "                            .applymap(colour_yellow, subset=(\"  \", \"Cost\"))\\\n",
    "                            .applymap(colour_green, subset=(\"   \", \"Cost\")))\n",
    "    print (\"The cheapest option is to decontaminate the Landfill waste stream!\")\n",
    "\n",
    "#\"When you click the button, execute this function\"    \n",
    "showAnswer_button.on_click(showAnswer)\n",
    "\n",
    "display(showAnswer_button)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# In Conclusion:\n",
    "\n",
    "> * We can understand how different items contaminate waste streams using tables.\n",
    "> * Recycling stream contamination is expressed in percentages.\n",
    "> * Data can be shown clearly in stacked barplots.\n",
    "> * Streamlining a waste management system is cheaper than reducing overall waste. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "![Callysto Banner](https://github.com/Ariel-VB/Central-Limit-Theorem/blob/master/Callysto_Notebook-Banners_Bottom_06.06.18.jpg?raw=true)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
